Shaarli

Personal, minimalist link-sharing bookmark app

Bookmarks & Read-It-Later ★ 3.9k stars Easy setup GPL-3.0

Shaarli is a personal, minimalist, database-free bookmarking application that can also act as a microblog of links. It targets individuals wanting a lightweight link log. It is deployed via Docker or a PHP stack.

Key features

  • No database, flat-file storage
  • Public and private links
  • Tagging and RSS feed
  • Plugin support

Pros & cons

Strengths

  • Extremely lightweight
  • Easy to back up
  • Can be public or private

Trade-offs

  • Dated default theme
  • Single-user only

Shaarli replaces

Last reviewed Sep 13, 2026 · 798 words

Shaarli is a link log you publish, not a bookmark vault you hide. Every link you save is public unless you tick the box, the front page is an RSS-fed stream of your finds with your notes attached, and the whole thing lives in one flat file with no database. That was the design in 2013 and it still is; people who want a private, searchable archive with screenshots keep choosing linkding, and people who want a small personal "here is what I read this week" page keep choosing Shaarli. Decide which of those you are before installing either.

Public by default, and why that is the point

The original author built it as a replacement for the Delicious-era habit of sharing links, and the public page is the product. Each link has a title, a URL, a Markdown note (with the bundled plugin enabled), tags, and a private flag. Public links appear on the front page, in the RSS and Atom feeds, and in the daily digest page that groups a day's links. Private links only show when you are logged in. The trick that makes it work as a personal microblog is that a link can have no URL at all, just a note, so short posts and bookmarks share the same stream. If you would rather nobody saw any of it, set the whole instance private in settings and it becomes a plain bookmark manager, though at that point linkding's interface is nicer.

One file holds everything

Bookmarks are serialised into data/datastore.php, a PHP file that is compressed and encoded so a web server will not hand it out. The complete backup is that data/ directory: datastore, config, and the user's login hash. Copy it to another server running the same version and the instance is restored. Import and export use the Netscape bookmark HTML format that every browser and every rival app understands, so moving in from Firefox or out to Linkwarden is a menu item. There is a size ceiling to this design: past several tens of thousands of links the file loads slowly on every request, and Shaarli's own documentation says as much.

Running it

Docker is the quick route; the official image serves on port 80 in the container:

services:
  shaarli:
    image: shaarli/shaarli:latest
    ports:
      - "8080:80"
    volumes:
      - ./shaarli/data:/var/www/shaarli/data
      - ./shaarli/cache:/var/www/shaarli/cache
    restart: unless-stopped

First visit shows a setup form that creates the single user and writes the config. On bare metal it is any PHP web server with the release unzipped and data/ writable, and it idles at well under the catalogue's 128 MB. Put it behind a reverse proxy with TLS; the login is a plain password form, and there is a brute-force ban built in but no second factor.

The capture workflow is the bookmarklet

Shaarli's defining habit is the bookmarklet on the Tools page: drag it to the bookmark bar, click it on any page, and a pre-filled form pops up with the title fetched and a tag box waiting. Browser extensions and mobile apps exist from the community and talk to the REST API, which needs an API secret from the settings page. The API is also how you script it: I have a small job that posts links from an RSS reader's starred items straight into Shaarli with a toread tag, which is most of what a paid read-later service ever did for me. Anyone leaving one of those should compare notes on the Pocket alternatives page.

Plugins fix most of the complaints

The dated default theme is the first con and there are a handful of community themes that fix it. The plugin list bundled with the app covers Markdown notes, a QR code per link, archive.org snapshots, and a Wallabag button that sends a link to your read-later instance for full-text archiving. Shaarli does not archive page content itself; it stores the link and your words about it. If offline copies of the page are the point, that is Wallabag's job or linkding's, and the bookmarks category lays out which tools archive and which merely list.

What I'd do

If I want a public link log with a feed my friends can subscribe to, Shaarli, Markdown plugin on, a community theme, the data/ directory in nightly backups. Bookmarklet on the desktop, an API-driven app on the phone. If I want a private searchable bookmark archive, linkding, no contest. Running both is not silly: Shaarli as the public face, linkding as the vault, and a tag that decides which one a link goes to.

Compare Shaarli

16 head-to-head comparisons.

Similar bookmarks & read-it-later apps