DEV Community

David Hamilton
David Hamilton

Posted on • Originally published at contextbolt.com

Local-first bookmark managers are back. Two ideals most of them quietly skip.

Two of the most loved read-later apps on the internet shut down inside eight months of each other. Omnivore went first, acquihired by ElevenLabs and switched off on November 15, 2024. Then Pocket, after Mozilla let it wither for years, shut on July 8, 2025 and took roughly 35 million libraries with it.

Neither died because the technology failed. They died because the business around them stopped making sense to somebody in a meeting.

So a whole category of bookmark tools came back with a single promise. Run it yourself. Self-hosted, Docker-composed, SQLite on a disk you can hold. Nobody can take this away from you.

I build a bookmark tool, so I have skin in this. And I think the people building the self-hosted wave are right about the problem and slightly wrong about the fix. Local-first won the argument. It has not yet won the job.

What local-first actually means

The phrase is not marketing. It comes from a 2019 essay by Ink & Switch, and it is specific enough to argue with. Local-first software keeps the primary copy of your data on your own device. The network is an enhancement, not a dependency.

The manifesto lays out seven ideals a local-first app should hit:

  • Fast, because reads and writes never wait on a server
  • Multi-device, so your stuff follows you
  • Offline, meaning full function with the wifi off
  • Collaboration, so other people can still work with you
  • Longevity, meaning the software outlives the company
  • Privacy, because the data never has to leave your machine
  • User control, the right to take your data and go

Seven. Read that list again, because almost every conversation about local-first bookmarks only ever discusses three of them.

Grade a self-hosted bookmark app honestly

Take a typical self-hosted bookmark manager (Karakeep, Linkwarden, both genuinely excellent) and grade it against the seven ideals it is implicitly claiming.

Ideal Typical self-hosted app Honest grade
Fast Local database, no round trip Excellent
Offline Works with the network unplugged Excellent
Privacy Data never leaves your box Excellent
User control Your disk, your file Excellent
Multi-device Needs a server, a domain, a VPN, or all three Depends on your patience
Collaboration Rarely a goal, often absent Weak
Longevity Survives the vendor. Does not survive you. The quiet failure

Four straight wins. Those are real, and they are why the category deserves its comeback. The bottom row is where it gets uncomfortable.

The longevity everyone cites and nobody tests

"The software works in ten years even if the vendor is gone." Fine. Does it work in ten years if you are gone? Not dead. Just busy.

A self-hosted bookmark manager you stopped patching, whose Docker image is three majors behind, whose backup cron job silently broke in March, is not safer than Pocket was. It is a shutdown with extra steps. Pocket at least emailed you. Your unmaintained container will not.

Self-hosting does not delete the risk of losing your library. It moves the risk from a company with a status page and a paid ops team to a person who has a day job. For the folks who already run a NAS and have actually restored from a backup, not just configured one, that trade is clearly correct, and they know who they are. For everybody else, "I own the data" quietly means "I am now the single point of failure."

The saves a local-first app cannot reach

There is a second gap, and it is bigger than the first.

Open your phone and think about where you actually save things now. You are not copying URLs into a self-hosted web app. You are tapping the bookmark icon on a post in X, hitting save on a Reddit thread, tapping save on a LinkedIn article. That is where saving happens now, inside the platform, one tap, twenty times a week.

Local-first bookmark managers cannot see any of it. There is no export button on your X bookmarks. Reddit shows you roughly your last thousand saves and no more. And these saves are pointers, not copies, so when the original post is deleted your bookmark quietly rots.

So the sovereign, private, offline library you built contains the twelve links you were motivated enough to file by hand. The four hundred things you actually saved are still trapped in three apps that do not care about them.

Escapable and machine-readable beat local and cloud

I think local-versus-cloud is the wrong axis to organize your choice around. Two other properties predict whether a library survives and stays useful, and they cut across both camps.

Escapable. Can you get everything out today, in a format another tool will read, without asking permission? Not "is there an export feature buried in settings." Have you run it? A cloud app with a one-click complete export is more escapable than a self-hosted app whose data sits in a schema only it understands. Pocket's failure was not that it was cloud. It was that 35 million people had never tested the exit.

Machine-readable. Can something other than the app's own search box read your library? For the last twenty years this did not matter much. It matters enormously now, because the thing you most want to do with a decade of saved links is ask an AI about them. A library your agent cannot reach is an archive, not a tool. This is what MCP exists to solve, a standard way for an AI agent to read a data source directly.

A private SQLite file nothing can read is sovereignty with nothing to show for it. You own it completely and it does nothing for you.

Where I land

I build ContextBolt Bookmarks, so let me be straight rather than clever. It is not local-first. Pro syncs your saves to encrypted cloud storage. If you want the seven ideals in full, run Karakeep. I mean that. It is a good piece of software and the people building it are serious.

It optimizes for the two gaps above instead. It captures automatically from X, Reddit, and LinkedIn, which is where saving actually happens and which no local-first tool reaches. It AI-tags every save with a topic so you find things by meaning rather than remembering a keyword. And Pro ($6/month) gives your library a personal MCP endpoint, so Claude, Cursor, and Windsurf can query your saves mid-conversation. The free Basic tier holds 150 bookmarks with the same tagging and semantic search.

That is a trade, and I would rather name it than pretend it away. If vendor independence is the thing you care about most in the world, this is the wrong tool and you should not buy it.

What I would push back on is the idea that self-hosting settles the question. It answers one risk loudly and leaves the other two untouched. The library still has to be findable, and it still has to be readable by the machine you now ask everything.

Local-first got the diagnosis right. The prescription is still being written.

If you want the longer version, with the full seven-ideal scorecard and the self-hosted graveyard nobody talks about, I wrote it up here: local-first bookmark managers.

Top comments (0)