I build small, local-first tools for the browser.
Most products start with the same annoyance: something that should take one step takes forty. What we're shipping now is Saver — a media archiver that keeps everything on your own disk, one extension per platform, sharing the same local core.
- Role
- Developer
- Based in
- Remote
- Stack
- Chrome MV3, vanilla JS, Node
- Focus
- Local-first tools
About
I work on browser extensions and the small tools around them. The rule I keep coming back to: if a feature needs a server, it needs a good reason. Most of the time it does not.
That is why every product here runs entirely on your machine — no account, no telemetry, nothing to sign up for. It is also why the code is smaller than you would expect.
Works
One family of Chrome extensions, plus the tooling that builds them.
Saver — Instagram Media Archive
Save posts, Reels, Stories and highlights you have permission to keep, straight to your disk.
Chrome extension 1 of 7 liveThe Saver family · 7 platforms
Instagram, X, TikTok, Douyin, Rednote, Kuaishou and YouTube — each integrated separately, all sharing one local core.
Chrome extensions AvailableSaver Family Bundle
One key unlocks every platform edition. $19.9 one-time.
$19.9Tools
Small utilities written for these projects, kept because they turned out useful.
sync-core
Copies shared libraries into each app and fails the build when a copy drifts from the source.
Node CLIsite-build
Generates this site: 10 languages from one template set and one JSON per language.
Node CLIlicense-keygen
Issues Ed25519 licence keys offline, so activation never needs a server call.
Node CLINotes
Write-ups on what broke, what worked, and what I would do differently.
- Coming soonWhy your extension should not have a backend Accounts, cloud storage and server-side throttling buy convenience and cost you data risk and ops. What local-first actually gives up — and what it buys back.
- Coming soonRate limits are a product decision, not an error case Free quotas, batch sizes, backoff: treating rate limits as a product surface to design, not an exception to handle when it happens.
- Coming soonShipping one file across ten languages One copy deck, ten languages, over a hundred pages. A zero-dependency build that keeps them from drifting.
Support this project
Saver is built and maintained by a small team. If it has helped you, we would be grateful for your support through either channel below — thank you.
Contact
Bug reports, licensing questions, or a tool you wish existed — email is the fastest way to reach me.