Blog
Building in public. Shipping small.
Memory Vault series
Memory Vault v1.0 is Released
Seven weeks of build-in-public, scope locked, shipped. Open-source, self-hosted AI memory with hybrid search, MCP, knowledge graph, and local LLM chat — Postgres + pgvector, MIT, one-command Docker.
Memory Vault Has a Knowledge Graph
Milestone 7: building a knowledge graph without an LLM. spaCy NER + Postgres + co-occurrence, force-directed Cytoscape visualization. 80% of the way for 0% of the LLM cost.
Memory Vault Has a Dashboard
Milestone 6: a four-page web dashboard — Search, Browse, Ingest, Stats. Token-gated, baked into the same Docker image as the API. One command, one port.
Memory Vault Has a REST API
Milestone 5: every MCP tool is now an HTTP endpoint. Bearer auth, rate limiting, OpenAPI docs. Integrate AI memory into any app, any language.
Give Claude a Long-Term Memory
Milestone 4: MCP integration — four tools that let Claude store and retrieve memories mid-conversation. Connect Memory Vault in two minutes.
Memory Vault Now Runs With One Command
Milestone 3: PostgreSQL + pgvector + hybrid search + embeddings, all running with a single docker compose up. Here's what happens under the hood and the decisions I made.
How Hybrid Search Works — Building the Engine Behind Memory Vault
Pure vector search wasn't enough. Here's how combining semantic similarity, keyword matching, and Reciprocal Rank Fusion built the search engine behind Memory Vault.
I'm Building an Open-Source AI Memory System
Every conversation with an AI starts from zero. I got tired of that. So I built a solution, used it daily for months, and now I'm open-sourcing it.
Database toolkit for .NET
Why I Built a Change Script Generator
Six tools. 75 days. While working full-time. This is the last one — the tool that completes the toolkit.
Why I Built a Schema Drift Detector
The DBA added a column on Tuesday. The developer deployed on Friday. The code didn't know. Nobody found out until a customer did.
Why I Built a Schema Documentation Generator
"Where are the database docs?" "Just... look at the tables in SSMS." Every team. Every project. Every time.
Why I Built an NHibernate XML to Fluent Converter
80 mapping files. All XML. The team decided to migrate to Fluent. Nobody volunteered. Here's the tool I wish I'd had.
Why I Built a SQL to C# POCO Generator
Quick — what's the C# type for UNIQUEIDENTIFIER? You know it. You still look it up. Every time.
Why I Built an NHibernate Code Generator
I've written the same three NHibernate files more times than I can count. Same structure, different names. So I automated it.