A lightweight, high-performance, client-side web video editor. It serves as a showcase for the OpenVideo engine and a starter kit for building video-editing SaaS applications.
- Client-Side Rendering: Hardware-accelerated rendering and exporting using WebCodecs and PixiJS v8 via
@openvideo/engine-pixi. - Multi-Track Timeline: Layered editing for video, audio, and images with drag-and-drop, splitting, trimming, and snapping.
- Interactive Canvas: Real-time viewport preview supporting drag, resize, rotate, and layer re-ordering.
- Asset Management: Local and cloud storage (e.g., Cloudflare R2, AWS S3) for media uploads.
- Effects & Transitions: Custom shader-based transitions and effects applied between clips.
- Local Exporting: Direct timeline rendering into MP4 files using browser APIs with zero server rendering costs.
- Modern UI/UX: Dark-mode interface built with Tailwind CSS v4, Radix UI, and Framer Motion.
| Component | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Rendering | PixiJS v8 via @openvideo/engine-pixi |
| Timeline & Core | @openvideo/core, @openvideo/timeline |
| State | Zustand |
| Styling | Tailwind CSS v4 |
| UI & Animation | Radix UI, shadcn/ui, Framer Motion |
Install dependencies from the monorepo root or directly in this directory:
# From the monorepo root
pnpm install
# Or within this directory (standalone)
npm installCopy .env.sample to .env and configure the required keys:
cp .env.sample .env| Variable | Description |
|---|---|
R2_* |
Cloudflare R2 / S3 credentials and public CDN domain for asset uploads. |
DEEPGRAM_API_KEY |
API key for audio and video transcription. |
PEXELS_API_KEY |
API key for the stock media library. |
pnpm dev
# or
npm run devOpen http://localhost:3000 in your browser.
OpenVideo is available under a dual-license model:
- Free License: Free for individuals, non-profits, and organizations with up to 3 employees.
- Company License: Required for organizations with more than 3 employees.
For commercial licensing, custom integrations, or enterprise support, contact us at [email protected].