Karakeep — Roadmap

Self-hostable bookmark-everything app (links, notes, images, PDFs) with AI tagging and full-text search. Directions derived from 588 open issues + open & recently-merged PRs, weighted by author role and engagement, discerned through an NKS assembly graph.
github.com/karakeep-app/karakeep
Honesty note (shabda): these directions are hypotheses, not verified fact. Issues/PRs are external word; the maintainer (MohamedBassem, owner) confirms or rejects. What he merges and opens is the strongest signal; user issues are weighted by reactions + comments.

What to do next — the next 3 moves

  1. Stop the bleeding — fix the memory/CPU regression (#2344, #1748, #2369, #2669). The 0.30 leak and crawl/import RAM blowups make instances unusable at scale. This is the only committed direction and it gates the two biggest bets (AI + multi-user).
  2. Land the AI knowledge layer you already started (PR #2857/#2858/#2861 merged). Bookmark embeddings are in — turn them into product: semantic search + chat over bookmarks (#2189, #863). The marquee differentiator.
  3. Harden archival of hostile sites (#414 — 40r/63c, the top issue). Cookie/GDPR-banner bypass + Reddit anti-bot blocking (#2885) are eroding the core “save anything” promise. No blockers — start now.
Parallel-safe alongside the above: data sovereignty — backup import/export (#75, approved pri/high) and Postgres (#1782 / PR #2825) — which also unblocks a future pgvector store for the AI layer.

Dependency order (anantara)

Foundation D1 · Стабильность под нагрузкой D2 · Надёжная архивация D3 · Суверенитет над данными
↓ after D1 (and D3 for the AI layer)
Next D4 · Зрелая аутентификация  after D1 D6 · Интеллектуальная база знаний  after D1, D3
↓ after D4
Then D5 · Мобильный клиент первого класса  after D4

Directions

🔂 D1 — Стабильность под нагрузкой

committed · adhimoksha start now no anantara predecessor

Telos: Karakeep becomes operable at scale — memory and CPU stay bounded under large imports, long uptime, and bulk operations; the instance does not degrade over time.

Why first: the only direction the maintainer is actively committed to, and the anantara predecessor of both D4 (auth) and D6 (AI) — both add load and are unsafe on a leaking base.

Driving issues / PRs
Open risks

The leak may live in a dependency (Puppeteer/Chromium), not Karakeep code — the fix may be partial. DB-lock on deletion needs an async reaper — a non-trivial architectural change.

Unblocks: D4 (multi-user load), D6 (embeddings/AI inference). Stability is the floor everything heavier stands on.

🕷️ D2 — Надёжная архивация любого сайта

ready start now carries the top issue

Telos: Karakeep becomes able to reliably and fully archive content from hostile sites — cookie/GDPR banners, anti-bot, logins, complex content — so the archive stops being fragile.

Why now: carries the single most-engaged issue in the repo (#414, 40r/63c, already approved). No predecessor. Defends the core “save anything” value prop.

Driving issues / PRs
Open risks

Banner/anti-bot bypass is an arms race — fixes decay as sites adapt. VNC-login (#1166) is iceboxed; the maintainer is cautious about its complexity/footprint.

Unblocks: reliable archives are a precondition for the AI layer (D6) — you can't embed/search content you failed to capture.

💾 D3 — Суверенитет над данными

ready start now (parallel) soft prereq of D6

Telos: the self-hoster becomes full owner of their data — import/export for backup, choice of external database (Postgres), open formats — no vendor lock-in to bundled SQLite, no risk of loss.

Why now: backup is approved + pri/high, no predecessor. Also a soft prerequisite for D6 — an external Postgres + pgvector is the natural home for the embeddings store (anantara: D6 after D3).

Driving issues / PRs
Open risks

Postgres support is a dual-backend maintenance burden — every migration must target two DBs. The open Postgres PR (#2825) is community-authored (NONE) — needs maintainer review before it counts as signal.

Unblocks: D6 (pgvector-backed semantic store); user trust for larger self-hosted deployments.

🔐 D4 — Зрелая аутентификация и многопользовательскость

blocked · after D1 carrier in flight: PR #2057

Telos: login and access control become flexible and correct for teams/families — better-auth as a single layer, SSO, proxy-header auth, correct collaborator permissions.

Why blocked: anantara after D1 (Стабильность) — multi-user load is unsafe on an unstable base. Carrier work is already in flight (PR #2057, maintainer).

Driving issues / PRs
Open risks

The better-auth migration is large and touches every auth path — high regression surface; it must land before SSO/proxy features build on it. Shipping SSO before the migration completes means rework.

Unblocks: D5 (mobile SSO depends on a mature auth layer — explicit anantara D5→D4).

📱 D5 — Мобильный клиент первого класса

blocked · after D4 highest-reaction user requests

Telos: the mobile app becomes a reliable, autonomous client — saves are never lost, works offline, catches up to web on UX and platform features (widgets, tablet).

Why blocked: anantara after D4 (Аутентификация) — mobile SSO/multi-user rides on the mature auth layer; transitively also needs D1's stable backend. Maintainer + collaborator (esimkowitz) already ship mobile polish.

Driving issues / PRs
Open risks

Offline-first means conflict resolution and a local store — a substantial architecture addition, not a quick fix. Share-intent reliability is platform-specific (Android) and historically flaky.

Unblocks: mobile parity is a top user-retention lever — many of the highest-reaction issues live here.

🧠 D6 — Интеллектуальная база знаний  the marquee bet

blocked · after D1, D3 foundation already merged

Telos: Karakeep becomes, from a bookmark store, an intelligent knowledge base — semantic search over embeddings, chat/AI-assistant over bookmarks, agentic search, customizable tagging prompts. Knowledge, not a link dump.

Why blocked but imminent: anantara after D1 (AI inference adds load) and D3 (Postgres/pgvector is the vector home) — but the foundation (bookmark embeddings, embedding-based tags) is already merged, so it's the closest blocked direction to launch.

Driving issues / PRs
Open risks

Embeddings + chat add real inference cost — directly feeds the D1 stability risk (why D1 gates it). Provider sprawl (OpenAI/Ollama/Anthropic/Perplexity) grows the config & test matrix; the evals PR (#2684) exists to contain it.

Unblocks: the strongest differentiator vs. plain bookmark managers; converts the existing AI-tagging investment into user-facing search/chat.