Screen and camera recording in the browser, edited as a sequence of clips rather than a timeline, with backgrounds and layouts for demo videos.
Build me screen and camera recording that replaces Tella: clips instead of a timeline, so somebody who cannot edit can still make a good demo video. STACK - A browser application using getDisplayMedia and getUserMedia, MediaRecorder for capture - Node 20+ with Fastify for hosting and sharing, SQLite through better-sqlite3 - ffmpeg on the server for the final render; ffmpeg.wasm only if it must stay entirely local - Caddy in front THE IDEA - A timeline is why most people cannot edit video. Clips are the answer: record a take, keep or discard it, record the next, reorder them. No frames, no scrubbing, no razor tool - A bad take is deleted and re-recorded rather than trimmed. That is faster for anybody who is not an editor, and it is why this format works - So the unit is the clip, and the editing operations are: keep, discard, re-record, reorder, and trim the ends only THE DATA MODEL - projects: id, name, owner_id, layout_kind, background_json, canvas_size, created_at, updated_at - clips: id, project_id, position, kind, screen_blob_path, camera_blob_path, duration_ms, trim_start_ms, trim_end_ms, layout_override_json, created_at — kind is screen, camera, both, or an imported file - renders: id, project_id, path, bytes, duration_ms, status, ms, created_at - shares: id, render_id, token, password_hash, expires_at, revoked_at, views - views: id, share_id, at, watched_ms, ip_hash, bot - Screen and camera stored as separate tracks, not composited at record time. That is what lets the layout change afterwards, which is the second reason people choose this format RECORDING - Screen with getDisplayMedia, camera and microphone with getUserMedia, recorded as separate streams so they can be laid out independently - MediaRecorder into chunks written to storage as they arrive, so a crash loses seconds rather than everything - A countdown before recording, a visible indicator while recording, and a keyboard shortcut to stop - Pause and resume within a clip - Audio levels shown live. A recording with no audio is discovered at the worst possible moment, so warn if the level has been silent for several seconds - A microphone check before the first take, because bad audio ruins a video that bad video does not LAYOUT AND BACKGROUND - The screen recording placed on a background with padding and rounded corners, with the camera as a circle or a rectangle in a corner - Preset layouts: screen only, camera only, camera large with screen small, side by side, and picture-in-picture — switchable per clip, which is how a demo goes from a face to a screen and back without any editing - Backgrounds: a solid colour, a gradient, or an image, with the composition happening at render time from the stored tracks - A cursor highlight and a click ripple, drawn from the pointer positions recorded alongside the video. Recording the pointer track separately is what makes this possible and it costs almost nothing TRIMMING, MINIMALLY - Trim the start and end of a clip with two handles and a preview. That is all - Automatic silence trimming at the ends, offered rather than applied - No cutting from the middle. That is what re-recording the clip is for, and keeping it out is what keeps the interface usable RENDERING - Composite on the server with ffmpeg: the layout, the background, the camera overlay, the cursor effects, and the clips concatenated - A queue with a concurrency cap, because this is CPU-heavy and unbounded parallelism takes the machine down - Progress reported honestly, and a hard cap on total duration - Output as MP4 with a widely playable codec, plus a WebM if you want it, and a poster frame - Keep the source tracks after rendering, so a re-render with a different layout needs no re-recording SHARING - A page per video with a token URL, optionally password-protected and expiring, revocable - A player that works everywhere: a plain video element with the poster, captions if there are any, and no framework - View counts and how far people watched, which is the only analytic that matters here — where people stop tells you which minute to cut - Download allowed or not, per share CAPTIONS - Transcription with a local speech model if you want it, producing a WebVTT track. Never send the audio to a third party without saying so - Captions editable before rendering, and burned in optionally - A video without captions is a video a lot of people will not watch, especially on a phone with the sound off OPERATIONS - .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, MAX_DURATION_MS, RENDER_CONCURRENCY - Migrations on boot, each once - Storage is the real cost here: measure bytes per minute early and set a retention policy per project - Nightly backup of the database; source tracks per their own policy - Health endpoint reporting render queue depth and free disk WHAT MATTERS MOST Separate tracks and the clip model. Store screen and camera apart so the layout is a render-time decision, and resist every temptation to add a timeline. The moment there is a timeline, the tool is for editors and the people it was built for stop using it. Give me the repository, the recorder, the render worker, migrations, .env.example, and a README with deploy steps behind Caddy and the browser support caveats.
What you lose
- Recording screen and camera together in a browser, with the layouts already designed
- Clip-based editing that avoids a timeline entirely, which is why non-editors can use it
- Hosting and sharing of the finished video
If you would rather not build
- Loom, for the hosted version
- ffmpeg with a shell script
What it costs
read from their page 15 Aug 2026
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| Premium | $19/mo | — | 15 Aug 2026 |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
OBS Studio
$0Records screen and camera with scenes; free on every platform.
obsproject/obs-studiofree · open source
ffmpeg.wasm
$0Runs ffmpeg in the browser for short clips with no server.
ffmpegwasm/ffmpeg.wasmfree · open source
Why this verdict
our own opinion · changed only by a person
76/100
Verdict yes at 76. Recording the two streams separately is the design decision that makes everything else easy.
History
tracked since 10 Aug 2026 · nothing is ever overwritten
Questions about Tella
answered from the record above
Is Tella free?
No — the plan we track is $19 a month. Around $19/month billed monthly, cheaper annually.
Can you replace Tella by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 76 out of 100, build time one session. Read what you lose before you decide.
How much does Tella cost?
$19 a month on Pro — $228 a year. Recorded 10 Aug 2026.
What do you lose by replacing Tella?
Recording screen and camera together in a browser, with the layouts already designed; Clip-based editing that avoids a timeline entirely, which is why non-editors can use it; Hosting and sharing of the finished video. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Tella?
Yes: OBS Studio, ffmpeg.wasm. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

