unsubbed.co

Shaarli

Self-hosted read-it-later & bookmarks tool that provides personal, minimalist, super-fast, no-database bookmarking and link sharing platform.

Self-hosted bookmarking, honestly reviewed. No cloud dependency, no vendor lock-in, no database to maintain.

TL;DR

  • What it is: A minimalist, self-hosted bookmark manager written in PHP that stores everything in a flat file — no database required [1][2].
  • Who it’s for: Solo users — developers, researchers, or privacy-minded founders — who want a personal link archive they fully control and don’t want to babysit a database to get it [1][2].
  • Cost savings: Commercial alternatives like Pinboard charge $22/year or Raindrop.io Pro around $28/year. Shaarli self-hosted runs on a $5/mo VPS indefinitely with no recurring software cost.
  • Key strength: Dead-simple deployment (drop files, open page), flat-file storage that survives crashes and needs no backup ceremony, and a REST API plus plugin system that makes it more extensible than its minimalist surface suggests [1][2].
  • Key weakness: Strictly single-user. No teams, no shared collections, no multi-account support. The UI is functional but hasn’t been redesigned since the project’s early days. And the original author abandoned it — you’re running a community fork [1][merged profile].

What is Shaarli

Shaarli is a personal link sharing service you install on your own server. The pitch from the GitHub README is as plain as it gets: “The personal, minimalist, super fast, database-free, bookmarking service.” You save links, tag them, search them, and optionally publish them publicly. That’s the core.

What makes it technically interesting is what it doesn’t use. Most web apps at this scale reach for MySQL or PostgreSQL. Shaarli stores everything in a flat file. That design decision has downstream effects: deployment is a file copy, backups are a file copy, and the whole thing runs fast because data reads come from OS disk cache rather than a database query path [1][2].

The project started as the personal side project of Sébastien Sauvage, who ran his own instance for years and accumulated 25,000+ shaares (Shaarli’s term for saved links). Sauvage eventually stopped maintaining it, and the community forked it. The community fork — now at version 0.16.1 with 3,821 GitHub stars — has been the active branch for several years and is what you’d actually deploy today [merged profile][README].

Shaarli positions itself as a self-hosted replacement for services like Delicious, Diigo, and StumbleUpon — the old wave of social bookmarking platforms most of which have either been shut down or monetized into irrelevance [1]. The lineage matters: Shaarli was built when “bookmarking” meant a personal link archive, not a social feed, and the product reflects that philosophy throughout.


Why people choose it

The reviews and community feedback cluster around three consistent reasons people pick Shaarli.

The database-free design is the headline differentiator. Every comparable self-hosted bookmark manager — Linkding, Wallabag, LinkAce, Nextcloud Bookmarks — runs on a relational database. Shaarli doesn’t. For someone who wants a personal link archive without the overhead of standing up PostgreSQL, running migrations, or debugging connection pools, this matters [2]. The AppMus analysis calls the flat-file approach the thing that “contributes to its remarkable performance and ease of deployment” [2]. One Firefox extension reviewer summarized it cleanly: “Excellent self hosted application for keeping track of your bookmarks, very easy to use, and install/upgrade. Does not require a full backend database” [4].

Speed. The flat-file datastore is read-heavy and small, which means it gets cached by the OS quickly. The project’s own documentation says it “stays fast with even tens of thousands shaares” — a claim that’s plausible given the architecture. No query planner, no connection overhead [1][2].

Data ownership with no strings. Shaarli sends no telemetry, has no cloud sync, has no third-party dependency at runtime. Your links are in a file on your server. Import and export use the HTML bookmarks format that every browser can read [1]. AppMus describes this as “complete data ownership and privacy through self-hosting” [2]. For someone burned by Delicious’s multiple ownership changes or by Diigo’s increasingly aggressive upsell, the appeal is obvious.

What’s notable in the community feedback is that nobody claims Shaarli is feature-rich or visually impressive. The Firefox extension ratings — 4.5/5 across 8 reviews — are about reliability and the fact that it works consistently [4]. That’s a different value proposition than tools competing on features.


Features

Based on the README and documentation:

Core bookmarking:

  • Save links with editable URL, title, description, tags, and private/public visibility [1][2]
  • Tag-based organization with tag cloud and tag list views [1]
  • Full-text search across all fields [1]
  • Unique permalinks for each saved link [1]
  • Paginated list view with image and video thumbnails [1]
  • Picture wall / thumbnail grid view with lazy loading [1]
  • URL cleanup: strips tracking parameters like ?utm_source=... and fb=... automatically [1]

Publishing and feeds:

  • ATOM and RSS feeds — both global and filterable by tag or search query [1]
  • Daily digest view: newspaper-style summary of links saved that day, with a corresponding daily RSS feed [1]
  • Public sharing: you can expose your entire link collection or individual links publicly [2]

Input methods:

  • Bookmarklet for one-click saving from any browser [1]
  • Browser extensions (Firefox addon available, 4.5/5 rating) [4]
  • REST API for programmatic access and third-party client integration [1]

Organization:

  • Markdown support in link descriptions [2][4]
  • Private/public toggle per link — mix private and public in the same instance [2]
  • Archive capability for saving local copies of bookmarked pages [2]

Integration and extensibility:

  • Plugin system for extending functionality [1]
  • LDAP support for authentication (single-user use case only) [1]
  • Responsive design that degrades gracefully when JavaScript is disabled [1]
  • Docker image available [merged profile]

What’s missing relative to competitors:

  • No multi-user support — strictly one account per instance [merged profile]
  • No browser extension beyond a basic bookmarklet popup (the Firefox addon is functional but not deeply integrated — one reviewer asked for Wallabagger-style integration and didn’t get it) [4]
  • No highlight or annotation layer on archived content
  • No AI summarization or auto-tagging

Pricing: SaaS vs self-hosted math

Shaarli has no SaaS version. The software is free; your only cost is the server.

Self-hosted Shaarli:

  • Software: $0 (Free Software, zlib/libpng license per the component attributions) [1]
  • Server: $4–6/mo on Hetzner, Contabo, or DigitalOcean for a shared VPS
  • Database: $0 — the flat-file design means no separate database service [2]

Commercial alternatives for comparison:

Pinboard — the most-cited paid alternative in the bookmarking space. $22/year for the basic archiving tier. Pinboard is intentionally minimal (the founder is famously anti-feature), fully hosted, and closed-source. Your data lives on someone else’s server.

Raindrop.io Pro — approximately $28/year. Polished UI, multi-device sync, nested collections, browser extensions. Closed-source, hosted only.

Diigo — free tier with limits; paid plans starting around $40/year. Social features, annotations, highlights. Vendor has a history of service degradation and upsell pressure.

Savings math:

For a founder or developer currently paying Raindrop.io Pro at $28/year: self-hosting Shaarli on a $5/mo VPS means the VPS costs $60/year — more expensive if the VPS is dedicated solely to Shaarli. The math only favors self-hosting if you’re already running a VPS for other purposes (a common scenario) or if the data sovereignty angle is worth the premium to you. On a shared VPS hosting multiple services, the marginal cost of adding Shaarli is near zero.

The honest version of the cost argument for Shaarli isn’t “it saves money over Raindrop” — it’s “your data isn’t on a third-party server that can be sold, shut down, or rate-limited, and the software costs you nothing.”


Deployment reality check

This is where Shaarli earns its “dead-simple” claim. The install is genuinely simpler than most PHP apps.

Basic install path:

  1. Download the release archive or clone the repo
  2. Drop files in a web-accessible directory on a PHP-capable server
  3. Open the page in a browser and complete the setup dialog

No database setup. No migration scripts. No environment variable choreography [1][2]. The documentation lists Apache and nginx configurations, Docker, and reverse proxy setup — all standard PHP hosting patterns.

Docker path: Docker image is available at ghcr.io/shaarli/shaarli [merged profile][README]. A docker run with volume mounts for the data directory is sufficient for a working instance.

What you actually need:

  • A web server with PHP support (Apache, nginx + PHP-FPM, or Docker)
  • No database — flat file only [2]
  • A domain and TLS if you want HTTPS (Caddy handles this trivially)
  • About 50–100MB of disk space for the application; data files grow with usage

What can go sideways:

  • PHP version compatibility. The project targets modern PHP, but shared hosting often runs outdated PHP versions. Worth checking before you commit to a host.
  • File permissions. The data file needs to be writable by the web server process. Misconfigured permissions are the most common setup failure in PHP flat-file apps.
  • Backup discipline. The simplicity of flat-file storage means backup is easy, but it also means there’s no automatic WAL or point-in-time recovery. If you don’t back up the data file, you lose your links. Cron + rsync is sufficient, but you have to set it up.
  • Single-user hard limit. If you want multiple people to use the same instance — different family members, a small team — Shaarli can’t do it. You’d need separate instances or a different tool [merged profile].
  • Community fork, not original author. Sébastien Sauvage’s original instance is still online (with 25,000+ shaares), but the software is no longer maintained by him. You’re running community-maintained software [README]. For most users this is fine; the community has been active for years. For enterprise contexts or anyone who needs a commercial support contract, it’s a blocker.

Realistic time estimate: 15–30 minutes for a developer who’s deployed PHP apps before. 1–2 hours for someone working from the documentation for the first time, including domain and TLS setup.


Pros and cons

Pros

  • No database required. The flat-file design eliminates an entire category of infrastructure complexity. No PostgreSQL to stand up, no connection pool to tune, no schema migrations to run [1][2].
  • Genuinely fast. Small datastore, OS-cached, no query overhead. The project claims performance holds at tens of thousands of saved links — plausible given the architecture [1].
  • Trivial installation. Drop files, open browser. No build step, no dependency manager for the deployment itself [1][2].
  • Full data ownership. No telemetry, no cloud sync, no third-party runtime dependency. Your links are in a file you control [1].
  • RSS/Atom feeds on everything. Global feed, per-tag feed, per-search feed. Useful for piping your saved links into other tools [1].
  • URL tracking cleanup built in. Strips utm_*, fb=, and similar parameters automatically on save [1].
  • REST API and plugin system. More extensible than the minimalist UI suggests. Third-party clients can read and write via the API [1].
  • Import/export in browser-compatible HTML. You’re not locked into a proprietary format [1].

Cons

  • Strictly single-user. One account per instance. No shared collections, no team access, no guest access per workspace [merged profile]. This is a hard architectural limit, not a missing feature that might arrive in the next version.
  • UI is functionally dated. The interface does the job, but it hasn’t had a design overhaul. AppMus notes the “minimalist interface” as both a pro and implicitly a con — it won’t impress anyone used to Raindrop.io or Karakeep [2].
  • Firefox extension is basic. The official browser extension opens a popup showing the Shaarli web UI inside it. One reviewer explicitly flagged wanting deeper integration like Wallabagger provides [4]. It works, but it’s not polished.
  • Community fork of an abandoned project. The original author left. The community has maintained it well, but there’s no company behind this, no paid support tier, and no commercial incentive to keep developing it [README].
  • Technical setup required. Self-hosting PHP on a VPS is more accessible than it was five years ago, but it’s still a barrier for non-technical users [2]. There’s no one-click hosted option.
  • No multi-user means no collaboration. If your use case ever involves sharing a link collection with a colleague or partner, you’ll either run separate instances or switch tools.
  • License ambiguity. The merged profile flags the license as NOASSERTION. LinuxLinks cites zlib/libpng [1]. The README says “Free Software” and defers to the COPYING file for per-component details. For personal use this doesn’t matter; for embedding in a commercial product, verify before relying on it.

Who should use this / who shouldn’t

Use Shaarli if:

  • You want a personal link archive with zero ongoing infrastructure cost beyond a VPS you’re already running.
  • You’ve been burned by bookmarking services that got acquired, degraded, or shut down (Delicious, Diigo, StumbleUpon).
  • You want full-text search, RSS feeds, and tag-based organization without paying for them or trusting a third party with the data.
  • You’re comfortable deploying a PHP app or following a Docker guide.
  • You want something that will still work in five years without a subscription renewal.

Skip it (pick Linkding instead) if:

  • You want a more actively developed, modern-feeling self-hosted bookmark manager that still prioritizes simplicity. Linkding has a cleaner recent codebase and active maintainership.

Skip it (pick Wallabag instead) if:

  • Your primary use case is read-it-later, not bookmark organization. Wallabag is purpose-built for saving articles to read offline, with better content extraction and archiving.

Skip it (pick Karakeep or Raindrop.io instead) if:

  • You want AI-assisted tagging, automatic summaries, or a polished multi-device experience. Shaarli doesn’t offer any of those.

Skip it (pick Nextcloud Bookmarks instead) if:

  • You’re already running Nextcloud and want bookmark sync integrated into your existing self-hosted suite.

Skip it (stay on Pinboard) if:

  • You already pay for Pinboard and it works. The migration effort from Pinboard to Shaarli is real, and Shaarli’s self-hosting overhead may not be worth the $22/year you’d save.

Definitely skip it if:

  • You need multiple users on the same instance — it’s a hard no [merged profile].
  • You need a mobile app. Shaarli has a responsive web UI but no native mobile client.
  • You’re a non-technical founder with no Linux server experience and no one to help. The barrier isn’t high, but it’s real.

Alternatives worth considering

  • Linkding — the most direct modern equivalent. Also self-hosted, also minimalist, uses SQLite so slightly more infrastructure overhead but still lightweight. Actively maintained with a cleaner codebase.
  • Wallabag — overlapping but distinct. Read-it-later focused, saves article content, not just links. Better for “I’ll read this later” than “I want to reference this again.”
  • LinkAce — self-hosted link archive with broken-link checking and more structured metadata. Heavier than Shaarli but more feature-complete.
  • Karakeep — newer, AI-assisted tagging and summaries, bookmarks everything (links, notes, images). More ambitious scope, less proven long-term.
  • Nextcloud Bookmarks — right choice if you’re already in the Nextcloud ecosystem and want everything integrated.
  • Pinboard — paid, hosted, intentionally minimal like Shaarli but maintained by a single developer and fully managed. $22/year for hosted convenience.
  • Raindrop.io — best-in-class UI in the commercial bookmarking space. Multi-platform, nested collections, browser extensions that work well. The cloud dependency and ~$28/year Pro cost are the trade-offs.
  • Shiori — another self-hosted option written in Go. Smaller community than Shaarli, but a more modern codebase.

For a non-technical founder, the realistic choice is Raindrop.io vs self-hosting anything. Shaarli specifically makes most sense when you’re already running a VPS, want minimal infrastructure complexity, and the database-free design genuinely matters to you.


Bottom line

Shaarli is a thirteen-year-old tool that solved a specific problem well and hasn’t complicated itself since. No database, no cloud dependency, no recurring bill, no vendor who can change the pricing model. You get a fast personal link archive with RSS feeds, tag search, and a REST API — deployed in under an hour to a server you already have. The trade-offs are just as clear: single-user only, a UI that hasn’t been redesigned in years, and community maintainership without commercial backing. If you’re a solo user who wants to own your bookmarks and you already have a VPS, Shaarli is one of the most friction-free self-hosted tools in this category. If you need multi-user access, a polished mobile experience, or AI-assisted organization, look elsewhere.


Sources

  1. LinuxLinks“Shaarli is a minimalist, super fast, database-free, bookmarking service”. https://www.linuxlinks.com/shaarli-minimalist-fast-database-free-bookmarking-service/
  2. AppMus“Shaarli: Features, Alternatives & Analysis (2026)”. https://appmus.com/software/shaarli
  3. AppMus“Shaarli vs BibSonomy Comparison (2026) | Feature by Feature”. https://appmus.com/vs/shaarli-vs-bibsonomy
  4. Mozilla Add-ons“Bewertungen für Shaarli – Add-ons für Firefox” (user reviews, 4.5/5). https://addons.mozilla.org/de/firefox/addon/shaarli/reviews/

Primary sources: