Skip to content
kuldeeprajput-devPublic

About

A local-first browser video editor with a multi-track timeline, text and audio layers, recording tools, and MP4/WebM export. Your media and projects stay on your device

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation

Cutnora

Cutnora

Local-first Video Editor, Multi-track Timeline & Browser Export

Next.js 16.3 React 19.2 TypeScript 5.7 Tailwind CSS 4.3 pnpm 11.20
Projects saved locally Multi-track timeline MP4 and WebM export MIT license

Get started · Features · Contribute · Issues


Edit video, images, text, and audio on a multi-track timeline.
Trim clips, arrange layers, adjust visuals and sound, and export to MP4 or WebM where supported.

Media processing happens on your device. Projects are saved in your browser.

Editor preview

Cutnora's dark editor showing sample coastal footage, a media library, clip adjustment controls, and video, text, and audio tracks.

Edited screenshot with illustrative sample media.

What you can create

  • Timeline editing — trim, split, duplicate, and arrange clips across multiple tracks.
  • Canvas layers — combine video, images, text, and elements; adjust position, size, rotation, and opacity.
  • Visual adjustments — change brightness, contrast, saturation, and blur.
  • Audio and voiceovers — add audio, adjust volume, change clip speed, or record your microphone.
  • Screen and camera recordings — capture directly in the editor where your browser supports it.
  • Video export — choose MP4 or WebM, resolution, frame rate, and quality according to browser support.

Your first video

  1. Create a project. Choose a canvas size for your video.
  2. Add your media. Import files and place them on the timeline.
  3. Make it yours. Arrange clips, add text or audio, and preview your changes.
  4. Export. Choose your settings and keep the tab open until your video is ready.

Local storage and browser support

  • Storage is local. Projects do not automatically sync between browsers or devices. Clearing browser site data can remove your projects and media, so keep your original files and export finished work.
  • Browser support matters. Available codecs, recording options, and export performance depend on your browser and device. Export offers 24, 30, and 60 fps; compatibility paths may deliver a lower frame rate.
  • Some assets use the internet. Built-in asset libraries may fetch content from external services. Imported files are processed on your device.

Run locally

1. Install the prerequisites

Install Git and Node.js 24. Cutnora uses pnpm 11.20.0.

If you don't already have pnpm, install it after Node.js:

npm install --global pnpm@11.20.0

2. Clone and start

git clone https://github.com/kuldeeprajput-dev/cutnora.git
cd cutnora
pnpm install --frozen-lockfile
pnpm dev

3. Start editing

Open localhost:3000, create a project, and import your media. Keep the terminal running while you use the app. Press Ctrl+C to stop the server.

Development and production commands
  • pnpm dev — start the development server.
  • pnpm build — create a production build.
  • pnpm start — serve that build; run pnpm build first.
  • pnpm lint — check code with ESLint.
  • pnpm typecheck — check TypeScript types.
  • pnpm format:check — check formatting without changing files.

Read CONTRIBUTING.md for contribution checks and pull request guidance.

Production domain and search setup

The public domain is configured once in src/config/site.ts:

url: "https://cutnora.app",

Metadata, canonical URLs, the sitemap, and social previews use this value.

After deploying:

  1. Add cutnora.app as a custom domain in your hosting dashboard and apply the DNS records provided by your host.
  2. Choose https://cutnora.app as the primary domain. Redirect any alternate hostnames, such as www.cutnora.app, to it through your host if you enable them.
  3. Confirm /robots.txt, /sitemap.xml, and /images/og-image/og-image.png load on the deployed domain.
  4. Add a Domain property for cutnora.app in Google Search Console, verify ownership using its DNS TXT record, and submit https://cutnora.app/sitemap.xml.

The sitemap lists the public landing page. Editor and local project routes use noindex metadata and are excluded from the sitemap; crawlers can still access them to read that metadata.

Under the hood

Built with Next.js, React, TypeScript, and Tailwind CSS. Zustand manages editor state; Dexie and browser file storage keep projects and media local. Mediabunny and browser media APIs handle decoding and export, with MediaRecorder and FFmpeg compatibility paths.

Contribute and get help

Bug reports, documentation, accessibility fixes, and focused editor improvements are welcome.

License

Cutnora's original code is available under the MIT License. Third-party dependencies and assets retain their own licenses.

Copyright © 2026 Kuldeep Rajput.

About

A local-first browser video editor with a multi-track timeline, text and audio layers, recording tools, and MP4/WebM export. Your media and projects stay on your device

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages