Why Nzuko keeps your recordings as plain files
Nzuko saves every recording as ordinary files in a folder you can open. Why we built it that way, what is in the folder, and what it costs us.
Nzuko is a screen recorder for the Mac. It records your screen and camera, transcribes on your Mac, and lets you search your recordings by what was said. It is pre-release. There is no download yet, because the app is waiting on an Apple Developer ID.
The biggest choice in Nzuko isn’t a feature. It is where a recording lives. Every recording is a folder of plain files on your disk. This post explains why.
What a recording looks like
When you stop recording, Nzuko writes a folder. Inside it:
video.mp4, the screen recording.webcam.mp4, the camera, if you had it on.thumbnail.jpg, the poster frame.captions.vtt, captions in the standard web format.transcript.json, the words with their timings.metadata.json, the title, length, and other facts about the recording.
These are files any other app can open. QuickTime plays the video. A text editor opens the captions. You can copy the folder to a drive, sync it with whatever you already use, or delete it in Finder. You can choose where the folders go.
The library is a copy
Nzuko also keeps a library: a small database that makes search fast and the home screen quick to draw. It would be easy to make that database the real record, and the files a side effect.
We did the opposite. The files are the real record. The library is built from them, and it can be built again from them. If the database is lost or damaged, the recordings are still there, and Nzuko can rebuild the library by reading the folders.
That gives us one simple rule: when the files and the library disagree, the files win.
Crashes
Recording is the moment a crash hurts most. You have been talking for twenty minutes and something goes wrong.
The metadata file is written last, and written whole: it goes to a temporary file first and is then moved into place in one step. So a recording folder is either complete, with its metadata, or it is clearly unfinished. An unfinished folder still holds the video that was written before the crash, and Nzuko can find it and recover what is there.
Plain files make that possible. There is no half-written database row to untangle. There is a folder, and either it has its last file or it doesn’t.
Transcripts on your Mac
Nzuko transcribes on your Mac. It uses speech models that you download once, from inside the app. The app pins each model to an exact version and checks the file’s hash before using it, so the model you run is the one we tested.
The transcript then goes into the same folder as the video, as transcript.json and captions.vtt. Search reads from there. Nothing about it depends on a server we run.
Sharing, honestly
Plain files on your disk are only half the story, because people share recordings.
When you share, Nzuko uploads the recording to storage in your own Cloudflare account: a small worker and a storage bucket that the app helps you set up. You get a link that lasts 7, 30 or 90 days. When you stop sharing, the hosted copy is removed. The original stays on your disk.
So we don’t say your recordings never leave your computer. When you share one, it does leave, to an account you own. What we say is this: recordings are stored as plain files, and you choose what to share.
What it costs
Plain files aren’t free.
- More care with writes. Every writer has to leave a folder that makes sense if the app stops halfway. That is why the metadata is written last.
- Outside changes. You can rename, move or delete files behind the app’s back. The library has to notice and cope, which means more code and more tests.
- Fewer tricks. Some features are easier if a server owns the data, like comments from viewers or a shared team space. We haven’t built those, and plain files make them harder. We would rather keep your recordings simple.
Why it matters
Recordings are often things you want to keep: a walkthrough for a new teammate, a bug report, a talk. Tools come and go. A folder with an MP4 in it will open in ten years.
That is the promise we want to make, and it is a small one on purpose. Nzuko records, transcribes, and helps you find things. The recordings themselves stay ordinary, and stay yours.
You can read more on the Nzuko page.