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.
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.
- Everything you can add lives behind the Add button
above the tracks - new tracks in the top group, things that drop at
the playhead in the bottom one.
- 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.
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.
If the tab closes
Your edit is copied into this browser's local storage a few seconds after
every change, and again when you switch away from the tab. Reopen the page
and it offers to pick up where you left off. The media itself is not
stored - there is nowhere near enough room - so restoring asks you to
point at your files again. Project settings has a button to wipe the
backup, which is worth knowing about on a shared machine.
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 its two marks. Click one to choose which position you are setting - it turns white. Drag it to change when the move starts or 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. |
| Mirror | Horizontal and vertical flips live in the Picture section. They are applied after any rotation, so flipping a tilted clip mirrors what you can see. |
| 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°. |
The Inspector
Sections collapse, and only one is open at a time - with this many
controls a single long scroll meant the thing you wanted was never on
screen. Whichever section you last opened stays open as you move between
clips, so working through several of them adjusting colour does not mean
reopening COLOUR every time. A blue dot on a closed section means
something in there has been changed from its default, and the
? beside a heading explains what that section does.
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. |
Shapes and shadows
| Rectangle | The whole picture, with a corner radius if you want one. |
| Square / Circle | Takes the shorter side of the picture for both dimensions, so a circle is a true circle and never an oval. Move the picture underneath to choose what sits inside it. |
| Drop shadow | Follows whatever shape you chose, corners and circles included. Softness and offsets are percentages of the frame, so they look the same at every export size. |
Speed
The Speed section keeps the same piece of footage and changes how long
it takes to play, so the clip gets shorter or longer on the timeline
while showing exactly the frames it showed before.
| Speeding up | Leaves a gap where the clip used to end. Nothing else moves - which is the point, because sliding this track would knock it out of sync with the others. A Close the gap button appears when there is one to close, and it only ever moves clips on that same track. |
| Slowing down | The clip grows, and whatever follows it on that track is pushed along to make room. Nothing is trimmed or lost. |
| Sound | Pitch moves with speed, the way a tape machine does. The preview and the exported file always agree. |
| On the clip | Anything not running at normal speed carries a small badge like 2× in its corner. |
| Range | A quarter speed up to four times. Beyond that browsers decode unreliably and the sound falls apart. |
| Exporting | A .vidproj keeps speed exactly. Premiere and Resolve XML carries it as a Time Remap; an EDL carries it as an M2 record. |
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.
Light and dark
The sun/moon button switches between them, and your choice is remembered
for next time. Until you press it the app follows whatever your
operating system is set to, and keeps following it - so if your machine
switches over in the evening, this does too. Pressing the button once
means you have an opinion, and it is honoured from then on.
Both themes are built to WCAG 2.2 AAA contrast (7:1) for body text.
The video itself is unaffected: exports look identical either way.
Zooming the preview
The pill in the corner of the preview zooms from 25% to 300%. The two
halves of that range do different jobs, which is worth knowing:
| Below 100% | Shows the area around the frame, so you can find a clip you have pushed off the edge. A dashed outline marks where the exported picture actually ends. |
| Above 100% | Magnifies, for checking exactly where two things overlap or how close a caption sits to an edge. It stops at 300%, which is where a 1080p frame runs out of real detail. |
| Slider | Drag for a big change; the − and + buttons step by a quarter each press. |
| Wheel | Ctrl (or Cmd) and scroll zooms towards the pointer. On a trackpad, pinch does the same thing. Plain scrolling pans, once there is something to pan to. |
| Panning | Drag any empty part of the stage. Over a clip the drag belongs to the clip, so use the middle mouse button there - or pinch and drag on a touchscreen. |
| Fit | Back to 100% and centred. |
None of this touches the video. Zoom and pan are a magnifying glass over
the preview; the exported file is identical whatever you leave them set to.
Changing the shape of the whole project
Project → Verticalize 9:16 turns a landscape edit into
a tall one: the canvas changes and every clip is centred and cropped to
fill it. Centring is only a starting point - split each clip where the
action moves and set Position X on the pieces to follow it, or use Motion
to pan between two points. Square and Widescreen work the same way.
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.
VIDEDTR -
A video editor that runs entirely in your browser. Nothing you open is
uploaded, and the page is not permitted to open a network connection at
all - the browser enforces that, rather than the code merely promising it.
| Version | - |
| Built | - |
| Offline copy | Checking… |
| Automatic backup | - |
| Running as | - |
| Theme | - |
| Video export | - |
Reloading and updating
Installed as an app, this has no address bar and no pull-to-refresh -
there is no browser chrome for them to sit in - and it deliberately
loads from its offline copy first so it opens with no network. Those two
together mean an installed copy cannot notice a new version on its own.
These buttons are how you make it look.
Credits and licences
Icons are Lucide
1.47.0, ISC licence, embedded as path data rather than loaded from a CDN.
Export uses mp4-muxer and webm-muxer by Vanilagy,
fetched from a pinned CDN URL with a subresource-integrity hash the first
time you export, then kept in the offline copy.
Everything else is hand-written and has no dependencies.