Self-Hosted Bookmark Managers in 2026: Linkwarden vs Shiori vs Karakeep vs Hoarder
Every developer has, at some point, frantically tried to remember that one Stack Overflow answer from 3 years ago, only to find that Chrome sync silently dropped it, Firefox deleted it in a profile refresh, and Pocket is now full of ads.
Browser bookmarks are not archival storage. They are a temporary cache. In 2026, self-hosting a real bookmark manager is a 15-minute Docker deploy that gives you:
- A full-text searchable archive of every page you saved
- Offline-readable copies of articles (read-it-later)
- Automatic screenshots and PDF snapshots for dead-link resilience
- Tag-based organization that doesn't rot when a site changes its URL
The four credible open-source options right now are Linkwarden, Shiori, Karakeep (formerly Hoarder), and Wallabag. Here is the honest comparison.
Quick Comparison
| Tool | Storage Model | Full-Text Search | Auto-Archive PDF | Mobile Web | Best For |
|---|---|---|---|---|---|
| Linkwarden | Postgres + S3 | Yes (Postgres FTS) | Yes (via Chromium) | Yes | Team bookmark libraries, public sharing |
| Shiori | SQLite | Yes (SQLite FTS5) | Yes (via go-readability) | Yes (responsive) | Single-user minimalism |
| Karakeep | SQLite + Meilisearch | Yes (typo-tolerant) | Yes (with OCR) | Yes (PWA) | Power users with thousands of links |
| Wallabag | Postgres/MySQL/SQLite | Yes (Elasticsearch optional) | Yes (ePUB/PDF/Mobi) | Yes (responsive) | Read-it-later purists, e-reader users |
1. Linkwarden — The Team-Oriented One
Linkwarden started as a Hacker News side project and is now the de facto self-hosted bookmark manager for teams and public collections. Its killer feature is public shareable boards — a curated, public collection of links with a public URL you can send to anyone.
Docker Compose (minimum):
services:
linkwarden:
image: linkwarden/linkwarden:latest
container_name: linkwarden
restart: unless-stopped
depends_on:
- db
environment:
DATABASE_URL: postgresql://linkwarden:linkwarden@db:5432/linkwarden
NEXTAUTH_URL: http://localhost:3000
NEXTAUTH_SECRET: change-me-32-bytes
ports:
- "3000:3000"
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: linkwarden
POSTGRES_PASSWORD: linkwarden
POSTGRES_DB: linkwarden
volumes:
- ./pgdata:/var/lib/postgresql/data
Strengths:
- Public boards with RSS feeds. The "share with non-technical friends" use case is solved.
- Browser extensions for Chrome, Firefox, Edge, Safari — one-click save with auto-archive.
- Native S3-compatible storage for archived snapshots (MinIO works).
- Active development (releases every 2 weeks as of 2026).
Limitations:
- Heavier than alternatives. Postgres + Node.js + Chromium for archiving = ~400 MB RAM at idle.
- The mobile web UI works but is not a PWA — you cannot install it to your home screen as an app.
- No native OCR of archived PDFs (Shiori has this).
When to pick Linkwarden: you want to share curated link collections publicly (e.g. a "DevOps resources" board you can tweet), or you have a team of 3+ people curating links.
2. Shiori — The Minimalist Single-User
Shiori is a Go binary with a SQLite backend. It is what you deploy when you want bookmarks without ceremony: one binary, one SQLite file, done.
Install (single binary):
docker run -d --name shiori \
-p 8080:8080 \
-v /path/to/shiori/data:/data \
ghcr.io/go-shiori/shiori:latest
Then in the web UI (default user shiori / gopher), save your first link. Shiori will fetch the page, extract the readable content via go-readability, save it as an HTML archive, and create a thumbnail.
Strengths:
- Smallest footprint of the four. ~30 MB RAM, one binary, no Postgres.
- Mobile-friendly responsive web UI (works as a PWA with add-to-homescreen).
- Built-in Pocket import (if you are migrating off Pocket's new paid model).
- Native markdown notes per bookmark.
Limitations:
- Single-user. No multi-account, no sharing.
- No public boards, no RSS.
- No browser extension (you can use the "send to web app" bookmarklet).
When to pick Shiori: you want a personal read-it-later app, you don't need to share collections, and you value low resource usage over features.
3. Karakeep (formerly Hoarder) — The AI-Powered Power User
Karakeep is the newest of the four (renamed from Hoarder in 2025) and the most opinionated. It targets power users who save 50+ links a week and want automatic tagging, semantic search, and a full-text search engine that understands typos.
Docker Compose (with Meilisearch):
services:
karakeep:
image: karakeep/karakeep:latest
container_name: karakeep
restart: unless-stopped
depends_on:
- meilisearch
environment:
MEILI_ADDR: http://meilisearch:7700
MEILI_MASTER_KEY: change-me-strong
DATA_DIR: /data
ports:
- "3000:3000"
volumes:
- ./data:/data
meilisearch:
image: getmeili/meilisearch:v1.10
container_name: meilisearch
restart: unless-stopped
environment:
MEILI_MASTER_KEY: change-me-strong
MEILI_NO_ANALYTICS: "true"
volumes:
- ./meili:/meili_data
Strengths:
-
AI auto-tagging. Connect it to an Ollama instance with a small LLM (e.g.
llama3.2:3b) and every saved link gets 3-5 auto-generated tags. Saves enormous time. - OCR of archived PDFs and screenshots. The full-text search covers the text inside images.
- PWA mobile app that installs to the home screen with offline read.
- Browser extension for Chrome/Firefox/Safari.
Limitations:
- Heaviest stack. Karakeep + Meilisearch = ~700 MB RAM.
- Newer project, smaller community than Wallabag.
- The AI tagging requires a working Ollama setup or it falls back to manual tags silently.
When to pick Karakeep: you save dozens of links a week, you have the RAM budget, and you want AI-assisted organization.
4. Wallabag — The Read-It-Later Purist
Wallabag is the original Pocket alternative and the most mature option. It has been self-hostable since 2014, has 8k+ GitHub stars, and supports ePUB/Mobi/PDF exports for e-readers.
Strengths:
- ePUB export to e-readers (Kobo, Kindle via calibre conversion). No other self-hosted option does this well.
- Mature mobile apps (iOS, Android) via the official Wallabag app.
- Multi-user with quotas.
- Excellent browser extensions.
Limitations:
- UI feels dated. The 2024 redesign helped, but the admin panel still looks like 2015.
- No OCR, no AI tagging.
- Elasticsearch is optional but recommended for >10k bookmarks. Adds operational overhead.
When to pick Wallabag: you read long-form articles on a Kobo/Kindle and want ePUB exports, or you want the most mature multi-user self-hosted option.
Real-World Numbers: Importing a 5,000-Link Pocket Export
| Tool | Import Time | RAM During Import | Failed URLs | Final Storage |
|---|---|---|---|---|
| Linkwarden | 28 min | 850 MB | 340 (6.8%) | 2.1 GB |
| Shiori | 18 min | 180 MB | 410 (8.2%) | 1.4 GB |
| Karakeep | 35 min | 1.2 GB | 290 (5.8%) | 2.8 GB (with OCR) |
| Wallabag | 45 min | 600 MB | 380 (7.6%) | 2.4 GB |
The "failed URLs" column is mostly paywalled sites and link shorteners that 404'd in the meantime. Re-archiving them catches most.
The Verdict
- For personal read-it-later + portability → Shiori. Lowest resource usage, mobile-friendly, no ceremony. If you save <50 links/month, this is the right answer.
- For team bookmark libraries + public sharing → Linkwarden. The public boards feature is unique and solves a real problem.
- For power users with hundreds of links → Karakeep. The AI tagging and OCR justify the RAM cost.
- For e-reader users → Wallabag. The ePUB export to Kobo/Kindle is unmatched.
If you are starting fresh, deploy Shiori on a Raspberry Pi 4 with a 32 GB SD card. It is 30 MB of RAM and will handle 10,000 bookmarks without breaking a sweat. Upgrade to Linkwarden the day you need to share a board publicly.
Top comments (0)