linkding vs Cowpin: Should You Self-Host Your Bookmarks?

Cowpin

Cowpin

8/12/2026

#linkding #self-hosted #comparison #migration #bookmarks
linkding vs Cowpin: Should You Self-Host Your Bookmarks?

Let's start with the part most comparison posts bury: linkding is genuinely good. It's MIT-licensed, it runs in a single Docker container, it's actively maintained, and it does the job without ceremony. Tags, bulk editing, Markdown notes, read-it-later, browser extensions, a REST API, SSO via OIDC, and automatic archiving either as a local HTML file or on the Internet Archive. If you already run it and it's working, this post is not trying to talk you out of it.

What this post is for: you're deciding between running linkding yourself and using something hosted, and you want the trade honestly stated — plus, if you do move, exactly what survives the trip.

What self-hosting actually buys you

Three real things, and they're not small:

Nobody can take it away. No pricing change, no acquisition, no shutdown notice. We wrote a whole post about services that died — Delicious, Google Reader, Pocket, Omnivore. A container on your own disk doesn't appear on that list.

The data is already yours. Not "exportable" — yours, in a SQLite or Postgres file you can open right now.

It's cheap at any size. A hundred bookmarks or a hundred thousand, it's the same VPS.

If any of those three is the thing you care most about, stop reading and go run linkding. You'll be happy. Seriously.

What it costs you

The honest list, from people who run servers for a living:

  • You are now on call. Backups that you have actually restored from at least once — not backups you assume work. Docker image updates. TLS renewal when the cron silently stops. Postgres major-version upgrades.
  • Archiving is only as durable as your disk. linkding can snapshot pages locally, which is great — but those snapshots live on the same volume as everything else. A drive failure with an untested backup takes the archive and the bookmarks together.
  • Mobile and sharing get fiddly. Reaching your own box from a phone means a domain, a certificate, and either an open port or a tunnel. Every one of those is a thing that breaks on a Tuesday.
  • The upkeep is invisible until it isn't. Most weeks it's zero minutes. The bad week costs a Saturday.

Plenty of people happily pay this. The mistake is not knowing you're paying it.

Where Cowpin is actually different

Not "better" — different, on three axes:

Search that understands the question. Cowpin does full-text search across the archived page content, plus semantic search, plus "ask your library" — you ask a question in plain language and get answers drawn from the pages you saved. This is the one genuine capability gap; linkding's search is keyword-based over your bookmarks.

Highlights and annotations. Select text on a saved page, keep it, and export your highlights to Markdown, Obsidian, or Notion.

Zero operations. No container, no backups, no renewal. That's the entire pitch on this axis, and it's either worth something to you or it isn't.

Cowpin also archives full page text against link rot, has a browser extension, public profiles with RSS, and speaks the Pinboard-compatible API — which a lot of older bookmarking tools already target, so existing scripts often work unchanged.

And the honest counterweight: Cowpin is hosted. That's the whole thing you'd be giving up. We're a young product, which is exactly why the next section exists.

Exactly what survives a linkding → Cowpin migration

linkding exports Netscape HTML from Settings → Export. Cowpin reads that file directly — drag it into Settings → Import. Here is the field-by-field reality, which we checked against linkding's actual exporter rather than guessing:

linkdingComes over?Notes
URL and titleYes
TagsYesComma-separated tags map 1:1
DescriptionYes
Markdown notesYesKept as notes, separate from the description
Unread / read laterYesYour reading queue stays a queue
Shared vs privateYesPrivate stays private
Original save dateYesA ten-year-old library keeps its ten years
Archived stateAs a tagBecomes an archived tag you can filter on
Local HTML snapshotsNoNot included in the export — see below
Per-guest sharingSimplifiedCollapses to private or public

Three of those rows were fixed the week this post went up. linkding writes the read-later flag, your notes and the original save date into its export, and our importer was reading none of them — so an import looked complete, arrived with exactly the right number of bookmarks, and had quietly flattened every unread item to "read", dropped every note, and stamped a decade-old library with today's date. Nothing errored, because a bookmark with the wrong contents counts the same as a bookmark with the right ones. We found it while writing this comparison, fixed all three, and added tests that assert the contents of an import rather than just the row count.

We'd rather tell you that than let you find it with your own library. It's the second time a migration post has surfaced a real gap in our importer — the Instapaper one did the same — which is a decent argument for writing these honestly.

About the snapshots: linkding's export contains your bookmarks, not your archived HTML files. Nothing can transfer those. Cowpin builds its own archive by fetching each URL after import, so pages that are still online get archived fresh — and pages that have already rotted away are gone either way. If your linkding snapshots are precious, keep that volume backed up before you move.

And the way back out

This matters more than any feature. Cowpin exports to Netscape HTML — the same format linkding imports — so the door swings both directions. You can move your library to Cowpin, decide in three months that you'd rather run your own container after all, export, and import it into linkding. Tags, privacy, read state, notes and save dates all survive that trip too, because it's the same fields in the same format.

That last part is also newly true, and worth admitting for the same reason as above: our HTML export was writing your tags, privacy and dates but not your read-later flag, so the way out was lossy in exactly the way the way in was. Both directions are now tested against each other — we export a library, import it back, and assert every field came home.

A hosted tool that can't hand your data back is a trap. One that can is just a tool.

How to actually decide

Run linkding if: you already run a home server, you want your archive on your own disk, you enjoy the control, or "no company can shut this down" is non-negotiable.

Try Cowpin if: you want the searching-and-asking layer, you want highlights, or you've noticed that the bookmark manager you were going to self-host has been on your to-do list for eight months.

Or both. Run linkding as your archive of record, keep Cowpin for search and reading. Netscape HTML in both directions makes that a real option rather than a fantasy.

If you want to try it: export from linkding, drop the HTML file into Cowpin's import, and you'll have your library — tags, notes, read-later queue, privacy and save dates intact — in about a minute. Cowpin is free while we're finding our first users, and you can export everything back out whenever you like.

Import your linkding library →