My org-roam knowledge base is the center of how I think and work. But it lives in Emacs, which means I can only capture ideas when I’m at my computer. I wanted a way to feed my second brain from anywhere, using just my phone—but I refused to put my notes in someone else’s cloud. The solution had to be entirely self-hosted. What I built combines Matrix for messaging, n8n for orchestration, and an MCP server that bridges to org-roam, all running on my own infrastructure.
Publishing with Org-roam and Hugo
Most publishing systems treat writing and publishing as separate activities. You draft in one tool, then copy content into a CMS, tweak formatting, and hit publish. The writing environment and the publishing system are disconnected by design.
I wanted something different: a system where publishing is just another view of my thinking. Where the same notes I write for myself can become public posts with minimal friction. Where the blog is an extension of my knowledge base, not a separate silo.
Building a Second Brain in Emacs with Org-roam
I’ve been building what I call my “Second Brain,” an Emacs-based knowledge management system that doesn’t just store notes, but actively helps me think. It’s built on org-roam, extended with semantic search via vector embeddings and proactive surfacing of relevant information. The goal isn’t to replace my thinking but to augment it, surfacing connections I might miss and nudging me toward follow-ups I’ve forgotten.
Why Emacs and Org-roam#
Before diving into what I’ve built, it’s worth explaining the foundation I chose.