You save 200 interesting links. You open maybe four. The rest rot in a folder called "Later".
Like most developers, I have self-hosted or used almost every read-it-later and bookmark tool out there. They are all great at saving links—and terrible at helping you do anything with them.
The missing piece wasn't another bookmark folder. It was an action engine that sits between messy daily capture and your clean knowledge base or task board.
So I built Sparkkeep (v0.1.0, AGPL-3.0): a single-binary, self-hosted capture, AI triage, and deterministic deep-research engine.
BurlacuAndrei
/
sparkkeep
Self-hosted capture & AI action engine. Turn links, notes, and chat messages into triaged execution boards, cited research dossiers, and Obsidian/Notion notes.
Sparkkeep
Capture anything. Triage it with AI. Ship what matters.
Sparkkeep is a self-hosted action engine for the ideas you keep collecting and never execute. Share a link, a note, a voice memo, or a screenshot — it scrapes it, filters the noise, synthesizes an actionable brief, and puts it on a board you actually work from.
One binary. One SQLite file. No Postgres, no Redis, no cloud account.
Bookmark managers are graveyards
You save 200 interesting links. You open maybe four. The rest rot in a folder called "later".
Sparkkeep is not a bookmark manager. It is an action engine:
Capture ──► Noise Gate ──► AI Triage ──► Horizon Routing ──► Execution Board ──► Research ──► Digest ──► Shipped
- Capture from Telegram, Discord, Slack, the browser extension, a webhook, or a plain note with no URL at all.
- Filter engagement bait and spam before it reaches your inbox.
- Synthesize…
The Pipeline: From Messy Capture to Shipped Work
Capture ──► Noise Gate ──► AI Triage ──► Horizon Routing ──► Execution Board ──► Research ──► Digest ──► Shipped
- Capture from anywhere: Send a URL, voice memo, screenshot, or raw URL-less note via a two-way Telegram bot, Discord embeds/buttons, Slack Block Kit, the Chrome/Firefox Web Clipper, or a universal webhook.
- Filter the noise: A fast noise gate scores and filters engagement bait before it clutters your inbox.
- Synthesize an actionable brief (100% BYOK / Local LLM friendly): Using Ollama, LM Studio, vLLM, OpenAI, or DeepSeek, Sparkkeep extracts a TL;DR, why it matters, and a concrete checklist of next steps.
-
Swipeable Triage Deck & Execution Board: Burn through your unreviewed inbox with
1/2/3/Esc, route cards into Now / Next / Later, and execute from a widescreen board with a Focus Spotlight and 7-day Execution Pulse.
Why Deterministic Research Playbooks Beat Unbounded Agent Loops
When I tried wiring autonomous ReAct agents to research saved technical topics, two things happened:
- Small local models (7B–14B) got stuck in repetitive search loops.
- Cloud API models burned unpredictable token budgets and still hallucinated citations.
Instead of open-ended loops, Sparkkeep ships with Playbook Studio—a bounded, visual step sequencer with a 5-Pillar Research Health Linter, token cost estimator, zero-cost dry runs, and SearXNG web search integration.
Every research run produces a cited Research Dossier with a clear Pursue / Watch / Skip verdict:
Knowledge Sinks, Not a Walled Garden
Sparkkeep is the staging and research desk in front of your permanent notes. When a card moves into active work (To-Do, In Progress, Done) or completes deep research, Sparkkeep automatically exports it idempotently to:
- Obsidian (clean Markdown + YAML frontmatter mirrored directly to your vault)
- Notion (auto-provisioned database properties + rich Notion blocks)
- Joplin (Self-Hosted Joplin Server or Desktop Web Clipper API)
- Authenticated Outbox RSS & 1-click intents for Logseq, Things 3, Todoist, and GitHub Issues
And at the end of the week, the Intelligence Digest synthesizes your shipped wins, flags stale bottlenecks, and prepares your next focus items:
Under the Hood: One Binary, One SQLite File (<30 MB RAM)
I wanted Sparkkeep to run effortlessly on a Raspberry Pi, home NAS, or €5 VPS without maintaining Postgres, Redis, or Meilisearch containers:
- Go 1.26 Standard Library HTTP
-
Pure-Go SQLite (
modernc.org/sqlite, zero CGO) in WAL mode with FTS5 full-text search -
React 19 + TypeScript + Vite compiled into
internal/web/distand embedded into the Go binary via//go:embed - 6 UI Languages out of the box: English, Romanian, Spanish, Portuguese (Brasil), French, and German
Try It in 10 Seconds (Includes a 1-Click Demo Library)
docker run -d \
--name sparkkeep \
-p 8080:8080 \
-v sparkkeep_data:/data \
ghcr.io/burlacuandrei/sparkkeep:latest
Open http://localhost:8080. The first-run setup wizard includes a 1-click Demo Library so you can explore the Execution Board, Triage Deck, Playbook Studio, and Research Dossiers before connecting an AI provider.
Support & Feedback
If Sparkkeep looks useful for your workflow:
I'd love to hear what capture channels, local models, or knowledge sinks you're using in your stack—drop a comment below!





Top comments (0)