Difficulty Structuring a Browser-Based Video Editor Architecture While Practicing Modular Design Concepts

Hi everyone,

I’ve been practicing backend/frontend separation and modular design concepts on Exercism, and I tried applying what I learned to a small experimental project: a simple web-based video editor mimicking cepcut

I built a basic structure using React + FFmpeg.wasm, with modules like:

  • a project store (clips/timeline state)
  • a rendering engine (FFmpeg processing)
  • simple UI components (upload, preview, export)

While the basic flow works, I’m struggling with how to properly design the architecture for scaling it beyond a simple MVP. Specifically:

  • How should I structure a timeline system that supports multiple tracks cleanly?
  • What patterns are best for managing media state in a non-trivial editor?
  • At what point should rendering logic be separated into worker threads or services?

Right now everything feels tightly coupled once I start adding effects and multiple clips.

Where/how exactly have you been doing that? That’s not something the Exercism tracks touch on.