← All projects
Castlet
A free screen recorder that runs entirely in the browser. Your recordings never leave your computer.
- React

castlet is a free screen recorder that lives in a browser tab. Record your screen, camera and mic, trim the result, and save an MP4. No account, no install, and nothing is uploaded: every recording is made, stored and edited on your own computer.
I built it because the popular tools (Loom, Screencastify) push your videos to their cloud, cap free recordings, and ask you to sign up before you can record a 2 minute bug report.
What it does
- Records screen, webcam and mic, with system audio mixed in
- Floating webcam bubble and controls that stay on top of other windows (Document Picture-in-Picture)
- Markers while recording (Alt+Shift+M), shown on the timeline so you can jump back to them
- Trim and cut, remove audio, and copy any frame as an image
- Survives crashes and refreshes: an interrupted recording can be recovered
- Installs as an app and works offline
How it works
- Capture:
getDisplayMediaandgetUserMedia, with the Web Audio API mixing mic and system audio, andMediaRecorderwriting 1 second chunks. - Storage: chunks stream to the Origin Private File System (OPFS) while recording, so a long recording never sits in memory and a crash loses at most a second. The library (titles, dates, thumbnails) lives in IndexedDB through Dexie.
- Export: Mediabunny remuxes WebM to MP4 and handles trims and cuts in the browser, without ffmpeg.wasm. Files save with
showSaveFilePicker, or a normal download as a fallback. - Privacy: no server, no database, no login. The Content Security Policy only allows anonymous page counts (Umami), so the "never leaves your computer" promise is enforced by the browser, not just stated.
- Quality: Vitest for units, Playwright end-to-end tests that record with fake camera and screen devices in CI.
Built with React, TypeScript, Vite, Tailwind, shadcn/ui and Zustand, deployed as a static PWA on Cloudflare Pages.