Shaarli and Classic Flat-File Bookmarks: Import Honestly
Cowpin
10/11/2026

Shaarli (and the long tail of self-hosted link blogs, Delicious exports, and browser bookmark dumps) share one idea: your library is a flat file you can grep, rsync, and keep forever. Cowpin is hosted — but we still speak the same exchange formats those tools used, because migration trust is the product.
This post is for operators sitting on bookmarks.html, old Shaarli Netscape exports,
or Pinboard-style JSON who want to know what will move before they click Import.
What Cowpin imports today (Settings → Import)
| Source shape | Cowpin path | Typical origin |
|---|---|---|
| Netscape bookmark HTML | File upload or paste | Shaarli export, browser backup, linkding, many “export bookmarks” buttons |
| Pinboard JSON | Paste / chunked JSON | Pinboard backup, some scripts |
| Instapaper / Pocket CSV | Detected CSV | Read-later refugees |
| Wallabag / Karakeep JSON | Dedicated detectors | Self-hosted migrations |
| Twitter / Reddit exports | Dedicated detectors | Social saves |
There is no “Shaarli API sync” — you bring a file, same as leaving Shaarli for any other modern host.
Field fidelity (what survives)
Cowpin’s HTML importer reads URL, title, tags, notes (<DD>), privacy, read-later
(TOREAD), and save date (ADD_DATE) — the same fields we fixed for linkding
round-trips so read-later does not silently flatten. See the linkding post for why
row count ≠ success.
Usually moves: links, tags, titles, many notes, read-later flags, dates when present in the export.
Usually does not: Shaarli-specific plugins, geolocation, custom plugin metadata, thumbnail caches, or page archive bytes from the old host. Cowpin re-fetches URLs after import; dead links stay dead.
Private links: honored when the export marks them; account privateByDefault
still applies where the format is silent.
Recommended path from Shaarli
- Export Netscape HTML from Shaarli (or your fork).
- Cowpin Settings → Import → upload the file.
- Run duplicate URL scan + merge if you re-imported or merged collections.
- Spot-check read-later and tags on a dozen rows — especially if the export omitted
TOREADor used nonstandard tag separators.
Pinboard JSON works if your Shaarli workflow already emits Pinboard-compatible JSON; otherwise prefer HTML — it is what we test most often.
Cowpin → back out
Export Netscape HTML or Pinboard JSON from Cowpin Settings. Any tool that imports standard bookmark files (Shaarli, linkding, browsers) can take you back — same conservative promise as our other migration posts: we certify our export, not every importer on the other side.
Why bother leaving Shaarli?
You might not. Shaarli is MIT, flat-file, and ops-light. Cowpin is for people who want hosted full-text archive, semantic search, highlights, mobile share saves, and MCP without running PHP and cron. Not a moral upgrade — a different job.