Linkwarden

Collaborative bookmark manager with page archiving

Bookmarks & Read-It-Later ★ 19.8k stars Medium setup AGPL-3.0

Linkwarden is a collaborative bookmark manager that saves links and automatically archives full webpage snapshots. It targets individuals and teams who want preserved, organized bookmarks. It is deployed via Docker.

Key features

  • Automatic webpage archiving
  • Collections and collaboration
  • Full-text search
  • Browser extension

Pros & cons

Strengths

  • Preserves pages permanently
  • Good collaboration
  • Modern UI

Trade-offs

  • Requires Postgres
  • Archiving uses more storage

Linkwarden replaces

Last reviewed Aug 26, 2026 · 783 words

A bookmark to a page that no longer exists is worth nothing, and Linkwarden's answer is to archive every link the moment you save it: a screenshot, a PDF, a readable text version, a single-file HTML copy, and optionally a submission to the Wayback Machine. That is the difference between it and every lightweight bookmark manager, and it is also the resource bill. Budget a headless Chromium (hence the 1 GB RAM floor), a PostgreSQL database, and storage that grows by megabytes per link rather than bytes. For someone who has watched a decade of saved links rot, that trade is obviously right.

Compose is Postgres plus one container and three variables

services:
  linkwarden:
    image: ghcr.io/linkwarden/linkwarden:latest
    environment:
      - NEXTAUTH_SECRET=replace-with-a-long-random-string
      - NEXTAUTH_URL=https://links.example.com/api/v1/auth
      - DATABASE_URL=postgresql://postgres:secret@postgres:5432/postgres
      - NEXT_PUBLIC_DISABLE_REGISTRATION=true   # after you create your account
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data/data
    depends_on:
      - postgres
    restart: unless-stopped
  postgres:
    image: postgres:16-alpine
    environment:
      - POSTGRES_PASSWORD=secret
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: unless-stopped

Two things bite. NEXTAUTH_URL has to be the public URL including the /api/v1/auth path, or logins loop. And registration is open by default, so create your account and then set the disable flag and restart; a public sign-up page on a service that runs a browser on demand is an invitation to strangers with a lot of links.

Archiving is where the resources go, and you can tune it

Each format is a switch in your account preferences, and turning off the ones you will never open is the first optimisation. The PDF and screenshot come from a Playwright-driven Chromium, which is the memory-hungry part and the reason a 512 MB VPS will thrash. Storage is the slow burn: a text-heavy article archives to well under a megabyte, a media-heavy page with a full-page screenshot and PDF can pass 10 MB, and the ballpark across a mixed library is a few megabytes per link. At 5,000 links that is a low double-digit number of gigabytes, manageable on a local disk and cheap on S3-compatible storage, which Linkwarden supports as an alternative to the local volume. Back up the data volume and the Postgres database together; one without the other is half a library.

Collections and sharing make it a team tool, not just a personal one

Links live in collections with sub-collections, tags, and per-collection sharing to other users with view or edit rights, plus public collections you can hand out as a URL. The browser extension for Chrome and Firefox saves the current tab in one click, the API covers automation, and imports accept the standard bookmarks HTML every browser exports, plus Pocket and Wallabag formats. With Pocket shut down, that importer is the exit path for a lot of people, and Linkwarden's reader view is a reasonable stand-in for what Pocket did well.

AI tagging through Ollama is optional and works

Point it at an Ollama instance and it suggests tags for new links using a small local model, with nothing sent to a third party. On a modest home server with a 3B-class model this is fast enough to be invisible and accurate enough to be useful, particularly for the "I saved 400 links during a research spree" situation. It is entirely opt-in and the app is complete without it.

Against Linkding and ArchiveBox

Linkding is the minimalist: a single small container, SQLite, a keyboard-first interface, and archiving as an optional add-on rather than the point. If you want fast bookmarks with tags and nothing more, it uses a fraction of the memory and I would pick it. ArchiveBox is the other extreme, an archiving engine first with bookmarking as an afterthought, and the right tool when preservation matters more than browsing. Linkwarden is the middle: a modern bookmark manager that happens to archive well, with collaboration neither of the others attempts.

What I'd do

Linkwarden with Postgres on a box with at least 2 GB free, registration closed after the first account, screenshot and readable formats on and PDF off unless you need it, an Ollama tagger if one is already running, and a nightly backup of both the data volume and a pg_dump. Import the browser bookmarks you actually revisit rather than all 3,000 of them, or the archiver will spend a week catching up. If that sounds like too much for a list of links, it is, and Linkding is a fine home for the list.

Compare Linkwarden

22 head-to-head comparisons.

Similar bookmarks & read-it-later apps