Skip to main content
Back to blog

The Cortexproject Discovery

8 min read

I built a product called Cortex. I shipped it for months. I named the brand around it, wrote blog posts about it, lined up advisor conversations about it.

Then on a Monday afternoon, I shared a GitHub URL with my AI assistant — cortexproject/cortex — to compare a function signature. And I noticed the URL meant something.

It wasn't my repo.

The Other Cortex

cortexproject/cortex is a CNCF-graduated project. Has been since 2016. It's a horizontally-scalable, highly-available, multi-tenant, long-term storage backend for Prometheus. Used by Grafana Cloud and AWS Managed Prometheus, among others. Around three thousand GitHub stars. Active development. Ongoing community.

It is the project that owns the word "Cortex" in the cloud-native infrastructure space.

I had been about to publish my Cortex into a namespace that already belonged to one of the foundational observability projects in the industry I was targeting.

What That Actually Costs

Let me itemize, because the first reaction to "naming collision" is usually "well, just disambiguate" and the second reaction is "it'll be fine" — and both of those reactions undercount the real cost.

SEO is permanent. "Cortex GitHub" resolves to their project. "Cortex Prometheus" resolves to their project. "Cortex storage" resolves to their project. Any developer doing a casual search for what they think might be my product will find theirs first. Forever. There is no SEO investment I can make that beats a 2016 CNCF graduate's nine-year head start in the developer search corpus.

Trademark exposure compounds. I planned to launch publicly under BSL 1.1 with a managed-tier offering down the road. The moment a managed tier exists and revenue flows through it, "Cortex" becomes a commercial brand for me. CNCF Cortex's trademark situation is complex but defensible. Mine wouldn't be, and any defense would cost more than the rebrand.

Disambiguation tax accrues per conversation. Every potential customer, every advisor, every investor, every job applicant would need the same first thirty seconds: "no, not the Prometheus one, the other one, the AI memory one, with the brain stuff..." Multiply by every conversation forever. That's a tax on every business interaction.

BSL plus managed tier compounds the risk. The combination of source-available code (which signals "we're commercial") and a managed offering (which signals "we want your money") is the exact pattern that attracts trademark attention. If I'd been pure open source, the risk would have been low. As a product, it was high.

The marketing budget required to win the namespace doesn't exist. Beating an established CNCF project's mindshare for a single word would take seven figures in marketing spend, sustained for years. I have a Mac mini and an idea. The math does not work.

I should have caught this when I locked the BSL 1.1 plus public-launch-in-June plan. I didn't.

The Six-Hour Naming Odyssey

The discovery was on a Monday afternoon. By Monday evening I had written an explicit decision: rename, fast, before the public launch.

What followed was the most sustained naming work I'd done since the original Cortex. Six hours straight, with my AI assistant generating candidates, me reacting, both of us researching trademark availability and domain availability and existing project collisions. The candidate list grew to roughly forty names. Most of them died for one of three reasons:

  1. Already taken. Mnemosyne — there's a flashcard app and a Greek-myth-themed startup. Engram — there's a literal AI-memory startup with that name (a real, funded one). Cogito — there's a B2B sales-coaching company. Coral — too crowded.

  2. Too generic to defend. "Memory." "Recall." "Notes." All of these are dictionary words with a thousand existing uses. None survive a trademark search.

  3. Too clever to land. A few candidates were technically smart but emotionally inert — a pun nobody but me would explain, a wordplay that worked on paper and not in conversation. Brand names need to feel right, and "feel" turns out to be a hard test.

Around hour four, I bought mneio.io for fifty dollars on an impulse. Mneio felt close. It had Greek-myth resonance. It was technically defensible. But the pronunciation was uncertain — I couldn't tell if the "M" was silent. That uncertainty was a kill flag for a consumer-facing brand, and Mneio went into the "saved for later" bucket.

Around hour five, my assistant suggested Coquina. Specifically, it pulled the metaphor from the Castillo de San Marcos in St. Augustine — the Spanish coquina-stone fort built by Indigenous and Spanish labor in the 1670s, made of densely-cemented seashells, that famously absorbed British cannonballs instead of shattering. The metaphor for an AI memory system: it doesn't just store, it absorbs. Things hit it; it gets denser. Time makes it stronger.

That was the one.

Salvaging the Sunk Cost

Coquina was the platform name. Mneio was a fifty-dollar domain I'd bought on impulse and was now stuck with.

The salvage was a Stripe-style brand architecture.

Stripe ships its main product as Stripe. It also ships sub-products under sub-brands: Atlas, Radar, Sigma, Connect. Each sub-brand has its own developer-facing identity but rolls up to Stripe at the company level. That structure works because the main brand is consumer-facing and the sub-brands are technical-facing — developers tolerate (even prefer) more obscure or specific names for tools that solve narrow problems.

Apply that to my situation:

  • Parent company: Grain Studios.
  • Platform face: Coquina (the main brand, what end users see).
  • Memory engine sub-brand: Mneio (a developer-facing technical sub-brand, lives at mneio.io, used for the OSS / library layer of the platform).
  • Internal subsystems: brain-region names (amygdala, hippocampus, thalamus). These are internal; they keep their neuroscience identity.

That's three layers of abstraction, each addressing a different audience. The fifty-dollar domain went from sunk cost to architectural anchor. The brain-region names that I'd already invested in across a dozen workers got to keep their identity. Coquina became the user-facing brand without having to rename the engine.

I did the rebrand work over a four-day stretch. Audit tooling, automated rename, careful pass through every README and config and string literal. By the end of the week the live site served Coquina, the GitHub orgs were planned, and the engine sub-brand was architected.

What I Missed

The thing I want to be most explicit about — both for myself and for anyone reading this — is what I (and my AI assistant) failed to catch when we should have.

The decision to launch publicly under BSL 1.1 was made several weeks before the discovery. The product was already called Cortex at that point. Going public with a commercial license while named after a CNCF project was a self-inflicted wound, and it should have been caught by a basic trademark / namespace search at the time of the BSL decision.

It wasn't. Neither I nor my AI assistant flagged it. We were both deep in the implementation work, and the brand name had been background context for so long that nobody re-examined it.

The lesson I take from that: background context goes stale. The fact that I'd been calling the project Cortex for a year didn't mean the name was still safe to use a year later in a new commercial context. A fresh look at the namespace at every major business inflection point — license change, public launch, paid tier, naming a sub-product — would have caught this.

I now have a small note in my pre-flight checklist: namespace check on commercial inflection points. It's a five-minute search. It would have saved a six-hour rename if I'd done it on time.

The Forward Direction

I don't regret the rename. Coquina is a stronger name than Cortex was. The metaphor is more specific. The architecture (parent / platform / engine) is cleaner than what I had before. The Stripe-style brand structure gives the company room to ship sub-products without re-fighting the naming question every time.

But I won't pretend it was free. Six hours of naming work, four days of rebrand execution, and a small permanent reset of every external mention. That's the cost of catching a namespace collision late.

The principle I'm leaving with: the cheapest time to catch a brand collision is at first naming. The next-cheapest time is right now. Every other time is more expensive than both of those.

Run the search.


This is part 11 of a series on building autonomous AI infrastructure on consumer hardware. If you're naming a product right now, search the CNCF graduates list, search GitHub orgs, search USPTO TESS, and search the obvious domain combinations. Half an hour now beats six hours later.