Karakeep vs linkding
Pick Karakeep if you save articles, images, PDFs and notes and want to search what they say — it crawls each page with headless Chrome, indexes it in Meilisearch, and can tag with OpenAI or a local Ollama model — and you can give its three-container stack a couple of gigabytes of RAM. Pick linkding for a fast, single-container bookmark list with tags, notes, rule-based auto-tagging and browser extensions that runs on almost anything, Raspberry Pi included.
Side by side
Karakeep and linkding are both common picks for replacing Pocket, and both will hold your bookmarks on your own server. They are not the same kind of tool, though. Karakeep calls itself a "bookmark-everything app with a touch of AI": it saves links, notes, images and PDFs, crawls each page with a headless Chrome, indexes the content in Meilisearch, and can tag and summarize with a language model. linkding describes itself as "minimal, fast, and easy to set up using Docker": one Django container that keeps a clean, searchable, tagged list of links. The choice comes down to whether you want an archive of what you saved or a list of where it lives.
An archive of content vs. a list of links
Karakeep (previously named Hoarder) treats each bookmark as content to keep.
Its feature list covers links, simple notes, images and PDFs; automatic titles,
descriptions and images; lists you can share with other users; highlights; OCR
for text in images; auto-saving from RSS feeds; and a rule engine. Full-page
archival with monolith and video downloads with yt-dlp are both there as
switches (CRAWLER_FULL_PAGE_ARCHIVE, CRAWLER_VIDEO_DOWNLOAD), and both are
off by default. It has Chrome, Firefox and Safari extensions and official iOS and
Android apps, including offline reading on mobile.
linkding is built around the bookmark itself: tags, bulk editing, Markdown notes, a read-it-later flag, sharing with other users or guests, and automatic titles, descriptions and icons. It imports and exports the Netscape HTML format every browser understands, installs as a Progressive Web App, and has Firefox and Chrome extensions plus a bookmarklet. Mobile apps exist, but upstream lists them under community projects rather than shipping its own.
Search and tagging: AI vs. rules
This is the biggest practical difference. Karakeep indexes the page content it
crawls, so its README promises "full text & semantic search of all the content
stored." Full-text search runs on Meilisearch; semantic search additionally needs
an embedding model configured. Automatic tagging needs either OPENAI_API_KEY
(which also works with OpenAI-compatible providers through OPENAI_BASE_URL) or
OLLAMA_BASE_URL for local models. Without one, the docs say, "automatic tagging
will be skipped." Summarization is a separate switch that is off by default.
Tag quality, upstream warns, "will depend on the quality of the model you choose."
linkding's search matches words and phrases in the title, description, notes and
URL, plus tags, with and, or, not and parentheses. It does not search the
text of the saved page. Its auto-tagging is rule-based: you map URL patterns to
tags (youtube.com video), and the docs are explicit that matching "only works
based on the URL, not on the content of the website." No model, no API key and
no per-bookmark inference cost. The trade-off is that you do the thinking.
Footprint and setup
Karakeep's recommended install is three containers from its own Compose file:
the web app, a karakeep-chrome browser for crawling, and Meilisearch. You fetch
the file and write a .env with NEXTAUTH_SECRET, MEILI_MASTER_KEY and
NEXTAUTH_URL, then run docker compose up -d. A minimal single-container
install exists, but the docs warn you give up a lot. Without Meilisearch, search
is "completely disabled". Without Chrome, you lose screenshots and JavaScript-heavy
pages don't crawl correctly. Karakeep publishes no RAM requirement. Our 2 GB
floor is an estimate for the full three-container stack, since a headless browser
and a search engine run next to the Node app. Add more if you run Ollama on the
same box.
linkding is a single docker run with one volume, SQLite by default (PostgreSQL
is an LD_DB_ENGINE option), and an image that runs on ARM, Raspberry Pi
included. It publishes no RAM figure either; the 256 MB in our catalog is
also our estimate. The exception is the latest-plus image, which bundles
Chromium to take local HTML snapshots. linkding's archiving docs say that needs
"at least 1 GB of RAM." Our linkding page has the
one-line install.
We rate linkding 1 out of 5 to deploy and Karakeep 2 out of 5. Neither is hard. Karakeep just has more services, secrets and optional providers to wire up.
Running it safely
Two defaults matter on a public server. Karakeep makes the first account to sign
up the administrator, and new signups stay open until you set
DISABLE_SIGNUPS=true, so register immediately and then close the door. Its
security page also warns that the crawler fetches whatever URL a user submits
from your own network. An untrusted user could use it to reach internal
endpoints or expose your origin IP. Karakeep has basic SSRF protections, but
upstream's advice is to limit access to trusted users or route the crawler
through a proxy outside your network.
linkding has the opposite problem: no account exists after first start. You
create one with python manage.py createsuperuser inside the container, or with
LD_SUPERUSER_NAME and LD_SUPERUSER_PASSWORD. Both support OIDC single
sign-on. linkding can also sit behind an authentication proxy.
Licensing
Karakeep is AGPL-3.0; linkding is MIT. For running either one for yourself or your team, neither license asks anything of you. The AGPL only matters if you modify Karakeep and offer it to others over a network.
Which to choose
Choose Karakeep if you save more than links, such as articles, screenshots, PDFs and notes, and want to find them later by what they say rather than by what you tagged them. Also pick it if you want AI tagging, native mobile apps or RSS auto-saving, and can give it a small VPS with room for Chrome and Meilisearch. Choose linkding if you want a fast, dependable bookmark list you can run on almost anything, with tags you control and no model in the loop. Neither wins outright. The question is whether you want an archive or an index.
Choosing between linkding and Karakeep
Put the other way round, start with linkding if your old Pocket or browser bookmarks were mostly "links I'll come back to". It is the smaller install and the one with less to maintain. Move to Karakeep when searching the saved content itself, or letting a model do the tagging, is something you would actually use.
Not the only two options
If what you miss about Pocket is reading saved articles offline in a clean view, Wallabag is the dedicated read-it-later app in this catalog. See all the self-hosted Pocket alternatives for the full list.
Common questions
Karakeep vs linkding — which self-hosted bookmark manager should I pick?
Pick Karakeep if you want to save and full-text search page content, images and PDFs, with optional AI tagging through OpenAI or Ollama. Pick linkding if you want a minimal, fast bookmark list with tags and notes in a single container.
Which needs less RAM, Karakeep or linkding?
linkding. Neither project publishes a RAM requirement; our estimates are 256 MB for linkding's single container and about 2 GB for Karakeep's default stack of app, headless Chrome and Meilisearch. linkding's optional latest-plus image, which bundles Chromium for snapshots, needs at least 1 GB per its docs.
Does Karakeep need OpenAI to work?
No. AI tagging and summarization are optional — without OPENAI_API_KEY or OLLAMA_BASE_URL, Karakeep skips automatic tagging and everything else still works. Ollama lets you run the models locally instead of calling OpenAI.
Paid link — we earn a commission if you shop through it.
Other comparisons with these apps
The multi-database web client from DBeaver vs. the PostgreSQL-only admin tool.
One conf.yml with an in-browser editor vs. YAML files and Docker label discovery.
The team LLM-app platform vs. the Python-component canvas.