Escaping “Information Rot”
“I watched an incredible 40-minute lecture on YouTube, sent the link to a friend, and then… I forgot everything. I realized that saving a link is not the same as capturing knowledge. That insight was lost in a graveyard of ‘Watch Later’ lists.”
We are drowning in more high-quality information than any generation in history, yet we remember less of it. I created Nexus to stop “Information Rot”—the slow decay of valuable ideas that are captured but never processed.
The Architecture: Cloud Relay, Local Synthesis
Nexus splits work across two machines, on purpose. A small always-on FastAPI service on a DigitalOcean droplet handles the parts that need to run anywhere, anytime: pulling in a URL, running extraction, and calling Gemini for a first-pass structured extraction. That result — a “seedling” JSON file — is pushed to DigitalOcean Spaces, the cloud side’s only persistent responsibility.
Everything that matters long-term stays local. My M4 MacBook Air polls for new seedlings, and a filesystem watcher picks them up and runs the expensive second stage: local synthesis via Ollama and MLX, writing the final Markdown notes directly into an Obsidian vault, and indexing them into LanceDB for semantic search. The cloud never sees vault content — only transient extraction jobs.
An MCP server (mcp_nexus.py) exposes the vault directly to any MCP-compatible client — search, graph traversal, recent captures, and note creation — as 8 callable tools, so the vault itself becomes queryable infrastructure rather than a folder of files.
The Engineering: Local-First AI at the Edge
Running synthesis on a fanless laptop instead of a cloud GPU means fighting thermal throttling and model cold-starts directly. The watcher checks CPU thermal state before starting a synthesis job and inserts a cooldown if the machine is running hot, and every synthesis call runs under a hard timeout so a stuck local generation can’t freeze the pipeline — timed-out jobs stay on disk to retry rather than getting lost.
On the cost side, the Gemini relay call uses explicit prompt caching: the technical glossary and system prompt are cached server-side with a ~1-hour TTL and reused across requests, taking advantage of Gemini’s steep input-token discount for cached context rather than re-sending the same instructions on every call.
Not every part of the system uses an LLM. A nightly graph-maintenance agent walks the vault purely via cosine similarity — discovering latent links between notes, rescuing orphaned notes, flagging Maps-of-Content gaps — and is deliberately built to never call an LLM or generate text, on the principle that graph housekeeping should carry zero hallucination risk.
The Result: A Universal Knowledge Pipe
Today, Nexus is my Universal Inbox for all digital information — YouTube and Instagram video, long-form web articles distilled via Jina Reader, and research PDFs parsed for methodology and results. Because of the semantic search built on LanceDB, I frequently get “aha” moments where the system surfaces a connection I wouldn’t have made manually. My vault is no longer a graveyard of links; it’s a living knowledge base that grows more useful with every capture.
Obsidian Workflow
My “Second Brain” is built on the Zettelkasten method: atomic, single-concept notes for maximum linkability; local RAG so queries never leave the machine; Maps of Content as curated hubs; and a permanent index ensuring every new capture finds its logical home.