OpenVideo Editor: Client-Side React Video Editing with Remotion and PixiJS
Online react video editor using remotion. Capcut and canva clone.
At a glance
- What is it?
- OpenVideo Editor is a TypeScript and React application for assembling video, audio, and images in a browser. It combines a multi-track timeline, canvas editing, client-side export, and optional cloud services, but it is positioned as both a showcase and a starter kit rather than a complete general-purpose editor.
- Who is it for?
- OpenVideo Editor suits developers building a browser video editor or studying a Remotion-style editing workflow. It is less suitable for teams needing a mature, fully documented desktop editor, established collaboration system, or licensing terms already approved for organizations with more than three employees.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 115 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What OpenVideo Editor Solves
OpenVideo Editor targets developers who want to assemble media in a web application without sending the entire editing or rendering process to a server. The README describes it as a lightweight, client-side web video editor and a starter kit for video-editing SaaS applications. Its intended users are engineers building browser-based editing features, product teams prototyping a CapCut- or Canva-like interface, and developers learning how a timeline, preview canvas, media assets, and export flow can fit together.
The editor covers a recognizable editing workflow rather than a single conversion task. The timeline handles video, audio, and images as layers, with drag-and-drop placement, splitting, trimming, and snapping. The preview canvas supports direct manipulation through dragging, resizing, rotation, and layer reordering. The README also lists effects, shader-based transitions, local asset storage, cloud storage integrations, transcription, and stock media retrieval. These features make the repository useful as a starting point for a product interface, but the wording matters. The project is not presented as a finished editor with a published release history or a complete set of production guarantees.
The OpenVideo Editor Rendering and Timeline Architecture
The project uses Next.js 16.2.6 with the App Router, TypeScript, React, Tailwind CSS v4, Radix UI, and Framer Motion for the application layer. Editing state is handled with Zustand. The timeline and core packages are `@openvideo/core` and `@openvideo/timeline`, while preview and rendering work is associated with `@openvideo/engine-pixi`.
The documented rendering path is client-side. The README names WebCodecs and PixiJS v8 as the basis for hardware-accelerated rendering and exporting through `@openvideo/engine-pixi`. A user edits the timeline, changes the position, dimensions, rotation, or order of layers, and the canvas previews the resulting composition. Export is described as direct timeline rendering into MP4 files in the browser, using browser APIs rather than server rendering. That design can avoid server rendering costs for exports, but it also means that browser capabilities, memory limits, codec support, and the handling of long timelines become part of the adoption decision.
The repository description refers to Remotion, while the package manifest and README identify the OpenVideo packages and PixiJS engine. The available files do not provide enough implementation detail to explain how Remotion, if used, relates to the OpenVideo timeline or export path. That distinction matters for teams planning to extend the rendering engine.
Timeline Editing and Interactive Canvas Controls
The timeline is the central editing model. It represents video, audio, and images as layers, which allows clips and assets to be arranged on separate tracks. Splitting divides a clip into editable portions. Trimming changes a clip boundary, while snapping helps align edits to relevant positions. The README does not document keyboard shortcuts, frame-accuracy limits, proxy generation, undo behavior, ripple editing, or how timeline state is serialized.
The preview canvas provides direct spatial controls. Dragging moves a layer, resizing changes its dimensions, rotation changes its orientation, and layer reordering changes visual priority. These controls are distinct from timeline editing. A user can change where an item appears on the canvas without necessarily changing its time range on the timeline. That distinction is useful for building a simple editor UI, but the README does not describe responsive canvas scaling, crop modes, masks, blend modes, or handling of unsupported media dimensions.
The UI is built with Tailwind CSS v4, Radix UI, shadcn/ui, and Framer Motion. The README calls this a dark-mode interface, and the repository includes `components.json`, consistent with a component-based interface setup. The documentation gives no screenshots or text describing the complete panel layout, so the exact first-use workflow beyond running the development server is not confirmed here.
OpenVideo Editor Installation and First Development Run
The README supports installation from either the monorepo root or this directory. Choose `pnpm` for the monorepo path or `npm` for the standalone path. These commands install the dependencies declared by the project.
# From the monorepo root
pnpm install
# Or within this directory (standalone)
npm installThe project requires an environment file for its optional media services. Copy the supplied sample file before starting the application. The sample lists Cloudflare R2 or S3 settings, Deepgram settings, and a Pexels key. Do not assume that every key is required for basic local editing; the README describes the services by function.
cp .env.sample .envStart the development server with the package manager used for installation. The documented local URL is `http://localhost:3000`.
pnpm dev
# or
npm run devA first useful check is to open `http://localhost:3000` and inspect the editor interface. The README does not provide a fixture project, sample media path, or exact sequence for importing and exporting a video, so it does not support a more specific first-edit example. The repository includes `public/`, but its contents are not described in the available documentation.
Media Storage, Transcription, and Export Constraints
OpenVideo Editor separates local client work from services that require credentials. The `.env.sample` file defines `R2_BUCKET_NAME`, `R2_ACCESS_KEY_ID`, `R2_SECRET_ACCESS_KEY`, `R2_ACCOUNT_ID`, and `R2_PUBLIC_DOMAIN` for Cloudflare R2 or S3-compatible uploads. It also defines `DEEPGRAM_API_KEY`, `DEEPGRAM_URL`, and `DEEPGRAM_MODEL` for transcription, plus `PEXELS_API_KEY` for the stock media library.
These integrations expand the scope beyond a self-contained local editor. Asset uploads may depend on storage permissions, public-domain configuration, and provider behavior. Transcription may send audio or video to Deepgram, which changes the privacy and operational assumptions of a browser editing application. The README does not document upload limits, retry behavior, resumable uploads, credential rotation, or the exact data sent to each service.
The local export feature is more self-contained. The README says that timeline rendering produces MP4 files in the browser, but it does not state supported codecs, maximum duration, resolution limits, memory requirements, or behavior when a media file uses a codec that WebCodecs cannot process. This is the main practical boundary for teams expecting desktop-class editing reliability.
Licensing, Maintenance, and the Cost of Extending the Editor
The README describes a dual-license model. The Free License applies to individuals, non-profits, and organizations with up to three employees. A Company License is required for organizations with more than three employees, and the README directs commercial licensing, custom integrations, and enterprise support inquiries to `[email protected]`. The repository metadata classifies the license as other and points to the `LICENSE` file, so the license file should be reviewed for the actual grant and conditions. This review is necessary before embedding the editor in a hosted product.
The repository is not archived, and its last push was on 2026-06-30. No GitHub releases are listed. That means the repository may still accept changes, but there is no release-based version history in the available project metadata. The package manifest identifies the project as `@openvideo/basic`, version `0.1.6`, and marks it private. The manifest also pins several OpenVideo packages to `1.3.1`, while using caret ranges for many other dependencies. Upgrade planning should therefore account for both application code and changes in the engine, timeline, browser APIs, and storage integrations.
Editorial conclusion
OpenVideo Editor suits developers building a browser video editor or studying a Remotion-style editing workflow. It is less suitable for teams needing a mature, fully documented desktop editor, established collaboration system, or licensing terms already approved for organizations with more than three employees. Before adoption, inspect the LICENSE file and verify browser support for WebCodecs, PixiJS rendering, local media handling, and the required storage or transcription services.
Frequently asked questions
How do I install OpenVideo Editor?
The README documents `pnpm install` from the monorepo root or `npm install` within the project directory. After copying `.env.sample` to `.env`, run `pnpm dev` or `npm run dev` and open `http://localhost:3000`.
Does OpenVideo Editor export video on the server?
The README describes local MP4 export through browser APIs and says the feature has zero server rendering costs. The available documentation does not specify supported codecs, export limits, or memory requirements.
Which services need API keys for OpenVideo Editor?
The `.env.sample` lists `R2_*` values for media uploads, `DEEPGRAM_API_KEY` for transcription, and `PEXELS_API_KEY` for the stock media library. The README does not state that these keys are mandatory for every local editing operation.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/openvideodev-react-video-editor)Was this useful?