Everything happens on this device. Your video is never
uploaded. The page is not even permitted to make a network connection
— that is enforced by the browser, not just promised by the code.
Installing it
Served over https, this installs as an app: look for the install icon in
Chrome or Edge's address bar, or use Share → Add to Home Screen on
iOS. It then opens in its own window with no browser furniture. Dropping
the optional sw.js beside this file adds the automatic
install prompt and lets it open with no network at all.
Getting started
- Drop video, audio or image files into the Media Pool.
- Click a tile to see its name and details, download it, or add it at
the playhead. Drag one onto a track instead and a dashed outline
shows exactly where it will land before you let go.
- Drag a clip's ends to trim it; drag its middle to move it.
- Select a clip and drag it straight on the preview: corners resize,
edges crop, and the handle on the stem rotates.
- Select a clip and use the Inspector to size, crop, fade or adjust volume.
- Reorder tracks by dragging a track header, or with its up and down
arrows. The track at the top is drawn in front of the ones below it,
so that is how you put a caption or a logo over your footage.
- Press Export when you are happy.
Keyboard shortcuts
| Space | Play / pause |
| K | Pause |
| J / L | Step back / forward one second |
| ← / → | Step one frame |
| Home / End | Jump to start / end |
| S | Split the selected clip at the playhead |
| Ctrl+Shift+S | Split every track at the playhead |
| Delete | Remove the selected clip |
| T | Add a text overlay at the playhead |
| C | Capture the current frame into the Media Pool |
| I | Import media |
| Tab | Move between clips on the timeline |
| ← / → | With a clip focused: nudge it one frame |
| ↑ / ↓ | With a clip focused: move to the track above / below |
| + / − | Zoom the timeline |
| Ctrl+Z | Undo |
| Ctrl+Shift+Z | Redo |
| Ctrl+S | Save project |
| Ctrl+O | Open project |
| Ctrl+E | Export |
| ? | This help |
On the timeline
| Clip body | Drag to move it, along the track or onto another one. |
| Clip ends | Drag to trim. The clip gets shorter; nothing is thrown away. |
| Top corners | The small squares set a fade. The white ramp drawn across the clip shows how long it is and which way it goes. |
| Track name | Double-click to rename it. Enter keeps the change, Esc abandons it. |
| Amber diamonds | When a clip animates, these are the two marks. Drag them to change when the move starts and finishes. |
| Track order | Drag a header, or use its arrows. The top track draws in front. |
| Duplicate a track | The copy button in the header. The copy lands directly below the original with all its clips, crops, filters and fades intact. |
Handles on the preview
The handles and the Inspector sliders change the same numbers. Use
whichever suits the moment - handles to rough something in, sliders when
you want an exact value or are working from the keyboard.
| Inside the box | Drag to move. Hold Shift to snap back to centre. |
| Corner square | Resize evenly. The clip keeps its proportions. |
| Edge bar | Crop that edge. The opposite edge stays where it is. |
| Stem handle | Rotate. Hold Shift for 15° steps; it snaps to square on its own near 0, 90 and 180°. |
Sizing and cropping
| Contain | Fits the whole picture inside the frame. Bars appear if the shapes differ. |
| Cover | Fills the frame completely. Whatever hangs over the edge is cut off. |
| Stretch | Squashes the picture to the frame exactly. Distorts it, but occasionally useful. |
| Crop to frame shape | Trims evenly from opposite edges until what is left matches the project shape. This is how you get a wide photo into a vertical video without bars. |
| Trim sliders | Cut into each edge by hand. Nothing is written to your file - cropping just narrows the window we look through. |
Moving a clip while it plays
Select a clip and turn on Motion in the Inspector. Pick
Start pose, drag the picture where it should begin; pick
End pose, drag it where it should finish. It travels between the
two amber diamonds on the clip, which you can drag to change the timing.
This is how you slide a webcam inset out of the way to reveal what is
behind it, without cutting the clip in two and having it jump.
Hiding something: the blur track
Blur on the timeline toolbar adds a blur region on its own
track. It hides whatever is on the tracks below it, so drag the
track up or down to choose what it covers. Drag the handles on the preview
to place it, and round the corners all the way to get a circle. The
strength slider has a floor: the weakest setting is still a real blur, so
it cannot be turned off by accident.
Colour
Video and image clips get a COLOUR section in the Inspector: eight one-click
looks, then sliders for brightness, contrast, saturation, black and white,
hue and blur. The graphics card applies these while drawing, so the preview
and the export are the same thing rather than two guesses at it. A clip
with colour adjusted carries a small wand badge on the timeline.
Four ways out
| Video file | Renders the finished thing to .mp4, or .webm where H.264 is unavailable. The cut is baked in. |
| Project file | A few kilobytes of JSON holding your edit. Reopen it here later; it asks you to point at the media again. |
| Premiere / Resolve | Final Cut Pro 7 XML. Tracks, cuts and source ranges transfer frame-accurately; effects are best-effort. Both applications have read this format for years. |
| EDL | One track of straight cuts as plain text. No effects, but readable by essentially every editing system ever made. |
Known limits
- Export needs the WebCodecs API. Chrome and Edge are the safe bets;
Safari support is newer and patchier; Firefox varies by version.
- Not every browser build includes H.264 and AAC, which are patented.
Where they are missing, the export falls back to a .webm file using
VP9 and Opus. It plays anywhere modern and converts to MP4 easily.
- Decoded audio is held in memory so it can be mixed for export. Very
long sources will use a lot of RAM.
- Frame-accurate seeking depends on the source file. Variable frame rate
recordings (phones, some screen recorders) can drift slightly.
- Icons are Lucide (lucide.dev), used
under the ISC licence and embedded directly rather than fetched.