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.
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
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).
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.
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)
FoundationD1 · Стабильность под нагрузкойD2 · Надёжная архивацияD3 · Суверенитет над данными
↓ after D1 (and D3 for the AI layer)
NextD4 · Зрелая аутентификация after D1D6 · Интеллектуальная база знаний after D1, D3
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
#2344 Memory leak in 0.30 — RAM grows over timeNONE7r/54c · pri/high · approved
#1748 High memory usage during large imports/crawlingNONEpri/high
#2369 Chromium containers stuck with high idle CPUNONEpri/high
#2669 Account deletion locks DB — needs background reapingNONEpri/high
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 — Надёжная архивация любого сайта
readystart nowcarries 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
#414 Bypassing cookie and GDPR bannerNONE40r/63c · top issue · approved
#2885 Reddit crawling now getting blockedNONEpri/high · active regression
#1166 VNC client to log in on Puppeteer instanceCONTRIBUTOR39c · open PR #1297
PR #2887 Reddit OAuth client-credentials to bypass blockingNONEopen
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 — Суверенитет над данными
readystart 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
#75 Import / Export for backupNONE14r/20c · pri/high · approved
#2214 Include lists when exportingNONEpri/high · approved
#1782 Support external databases (Postgres)NONE32r · approved · PR #2825
#1413 Secrets in files instead of plaintextNONEpri/low · approved
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 D1carrier 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).
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 D4highest-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
#1077 Offline cache on mobileNONE51r/8c · approved · most-reacted mobile ask
#2401 Offline mode — store links until reconnectedNONE18r/14c · approved
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, D3foundation 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.
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.