Video Editing Tool MVP
Built an early browser-based editor with layers, canvas, and timeline as its first version.

- Timeline
- About 5 months
- Team size
- 4 people
- Platforms
- Web · Server
- Version scope
- Initial MVP
Background
The client wanted video editing to happen entirely inside the browser. They needed an initial version that handled layers and a timeline without installing any desktop editing software.
Scope
- Canvas-based layer editing
- Timeline construction
- In-browser render preview
- Project save and load
- Basic editing tool set
Technical decisions
What we chose, and why it fitImplemented canvas rendering with WebGL
With multiple layers stacked and everything needing to redraw on every timeline scrub, plain Canvas 2D got sluggish as layers increased. Moving to GPU-backed WebGL kept the editor responsive even as layer count grew.
Built a separate Node.js rendering server, decoupled from the browser
Producing the final output file was too heavy to handle in the browser, and it couldn't be allowed to affect the browser's performance while a user was editing. We moved rendering to a separate server-side job, keeping the editing screen light.
Engineering challenges
Problem
Previewing multiple layers playing back together on the timeline caused frames to lag.
Approach
We switched to pre-rendering only the layers within the currently visible range, and during playback, simply outputting the already-rendered frames in order.
Result
Timeline playback stayed smooth even with a higher layer count.
Problem
This being an MVP stage, feature priorities changed often, and adding each new editing tool required touching the existing canvas logic.
Approach
We structured editing tools as plugins separate from the canvas core, so adding a new tool no longer required modifying existing code.
Result
When priorities shifted and tools needed to be added or removed, we could respond without touching the canvas core.
Handover and operations
We handed over the source code and rendering server deployment configuration together, and documented the canvas and timeline architecture. We wrote up the code structure so the client's own development team could take over further feature expansion.