← / WritingSovereignty· April 2026· 9 min

Why the labs will lose the memory primitive.

Project Memory, ChatGPT Memory, Claude Memory. Three vendors converging on the same lock-in. The architecture that wins is the one you own.

Every major lab now ships a flavor of “memory.” OpenAI calls it Memory. Anthropic ships Project Memory. They behave roughly the same way. They remember things you say. They surface them later. They cost nothing extra. They feel like a product feature.

They are not a product feature. They are infrastructure. And the lab versions are the wrong shape.

Anyone running a serious LLM workflow accumulates context. That context becomes infrastructure. The labs treat it as a feature.

Three failure modes

First, lock-in. Project Memory lives in your Anthropic account. ChatGPT Memory lives in your OpenAI account. They do not move across vendors and they will not, ever. Switching costs grow every time you use them.

Second, surface gaps. The lab memory only exists where the lab’s product exists. It does not exist in the CLI you use at work. It does not exist in the desktop client your security team blocked. It does not exist in the agent your team built on top of the API. The places memory matters most are the places lab memory cannot reach.

Third, opacity. You cannot query the lab memory as a database. You cannot version it. You cannot back it up. You cannot move it. When the lab decides to deprecate or migrate the format, your context goes with it.

The inversion

User-owned memory is the architecture that beats every one of those failure modes. One server. Your database. A single MCP endpoint that every Anthropic and OpenAI surface mounts. The data lives where you put it and follows you wherever you go.

On the technical side this turns out to be a small amount of code. A NestJS module in front of Postgres. A tokenizer that splits queries on word boundaries and OR-matches each token against content, tags, and category. A score prefix on every result so callers can judge ranking quality. Streamable HTTP transport in stateless mode, so a single Cloud Run instance can serve every client without sticky sessions.

What the lab versions optimize for

Lab memory optimizes for adoption. It is free. It is automatic. It silently improves your experience without you having to learn anything. That is the right product call inside a lab’s funnel. It is the wrong infrastructure call for anyone building a workflow on top of three different vendors.

What user-owned memory optimizes for

Continuity. The same notes from your CLI session show up in Claude.ai twenty minutes later. They show up in ChatGPT when you ask the same question through that surface. They show up in your internal agent without any extra work, because the same MCP endpoint serves all of them.

Portability. If Anthropic raises prices or OpenAI changes terms, your memory survives the move.

Auditability. A real database means real backups, real queries, and real deletion. You can answer “what did this assistant know about me on March 14” by running a SQL query, not by filing a support ticket.

What it costs you to do this

Less than you think. The Brain server runs on Cloud Run with maxScale of three and a Cloud SQL Postgres on db-f1-micro. Total monthly bill at light personal use is a few dollars. The deploy script is one bash file. The setup time is under an hour.

The labs will keep shipping their version of memory. That version will keep getting better. It will keep being the right call for the casual user. It will keep being the wrong call for anyone who treats their accumulated context as infrastructure.

/ Talk to me

Want this built
in your stack?

If a pattern in this essay maps to something you are trying to ship, send me a note. I write back within a few days.

Get in touch