Atlas

A native desktop app for editing video file metadata and chapters - drag-and-drop chapter reordering, cover art, and export, all offline via Tauri v2 and ffmpeg.

I had a folder of video files with chapter markers I wanted to clean up - retitle a few, reorder others, fix a cover image - and every tool I found either wanted a subscription or an internet connection for something entirely local. So I built a small native app: open a video, edit its metadata and chapters, export, done, no network required.

Rust for the file, React for the UI

The Tauri v2 Rust backend owns everything that touches the filesystem or a subprocess: native file dialogs (tauri-plugin-dialog), filesystem access (tauri-plugin-fs), and shelling out to ffmpeg (tauri-plugin-shell) for the actual metadata writes. Format-compatibility checks run on the backend too - if a loaded file has editing limitations for its container format, that surfaces as a toast on the frontend right after load, before the user gets deep into editing something that won’t export cleanly.

The React 19 frontend never touches ffmpeg directly - it calls typed invoke commands and renders whatever comes back. Chapters are reorderable via @dnd-kit/sortable, video preview runs through @vidstack/react, and the export dialog handles format selection.

State that survives mistakes

Metadata edits go through Zustand stores split per domain - video, chapters, metadata - with Immer for immutable updates, which is what makes undo/redo on metadata edits straightforward instead of a manual diffing exercise. A dirty-state guard checks for unsaved changes before letting you open a new file, so a chapter reorder you forgot to export doesn’t just vanish.

Key decisions

Built with