Source: https://subagentura.tech/blog/keeping-recordings-local/

# How ScreenSilo keeps screen recordings local

The browser APIs and storage choices behind ScreenSilo's local recording workflow, and the limits of what local-first means.

By [lmn451](https://github.com/lmn451)   27 October 2026

A screen recorder often turns a short capture into a cloud workflow: create an account, upload the video, and retrieve or share it later. ScreenSilo takes a narrower route. It is a browser extension for capturing a selected tab, window, or screen, previewing the result locally, and downloading a WebM file when you want one.

I built ScreenSilo around a local recording path: the extension has no account or upload service, and it does not transmit recordings to a developer-operated backend. That is a product boundary that can be checked against its code and privacy policy, not a claim that a local browser profile is immune to other software or people with device access.

## Start with the browser's capture prompt

ScreenSilo uses the browser's native capture flow, so the person recording chooses the surface in the browser's picker. The extension can capture a tab, window, or entire screen; optional microphone and system or tab audio depend on browser, operating system, and capture surface. Browser support and available audio sources are not identical across Chrome, Edge, and Firefox.

Once capture starts, browser media APIs deliver the stream for local recording. A toolbar control or small in-page overlay can stop the capture, after which the extension offers a local preview. Keeping the start and stop controls near the browser surface makes the path easy to understand: choose, record, stop, preview, then decide whether to download or delete.

The [ScreenSilo source repository](https://github.com/lmn451/screencast)  and its [v0.2.3 release notes](https://github.com/lmn451/screencast/releases/tag/v0.2.3)  document the implementation and browser-specific release details.

## Persist chunks so recording can recover

ScreenSilo stores recording chunks and metadata in browser-managed IndexedDB. This lets the extension build a preview and recover local recording state when supported after a Chromium service worker is suspended or a recording is interrupted. The extension also keeps a bounded local diagnostic history for troubleshooting; diagnostics are separate from the captured audio and video.

Local storage does not mean encrypted storage. ScreenSilo's recordings in IndexedDB are unencrypted, and the browser profile remains on the device. A downloaded file is a separate copy; downloading does not automatically erase the browser-stored recording. Delete each copy from the place where it lives, and protect access to the device and browser profile accordingly.

The [privacy policy](https://subagentura.tech/screencast/privacy/)  describes what the extension stores, how it is retained, and what the user can remove.

## Keep extension behavior separate from the website

A product site may use analytics even when the extension does not. Those are separate programs with separate data practices. ScreenSilo's extension does not load the site's analytics code or send recording data to a server; the site has its own analytics, while the privacy-policy page disables analytics initialization and client-side navigation to avoid carrying it over from another page.

The extension also avoids broad host access such as `<all_urls>`. Its permissions support the capture controls, local session state, and recovery flow. Permission details differ between browser packages, so the policy explains those differences instead of presenting one manifest as universal.

## Local-first is a boundary, not a magic word

A local workflow removes a server-side upload step, but it still asks you to trust the extension code, the browser, and the device that stores the files. For ScreenSilo, the useful questions are concrete: which surface did I select, where is the recording stored, what happens when I download it, and how do I remove both copies? The answers are visible in the extension's lifecycle, storage implementation, and privacy policy.

ScreenSilo's [product page](https://subagentura.tech/screencast/)  links to installers and source builds, alongside browser-specific notes.

[← All field notes](https://subagentura.tech/blog/) [Explore the projects →](https://subagentura.tech/projects/)
