We Tried to Merge Two Products and Accidentally Found a Third
I asked whether two of my products should merge. The audit said no — and the reason turned into a different company, a hundred and thirty dead domain names, and one very quiet bug.
Two of my products looked like they should merge. Botsmann has an AI health assistant called Imhotep. Vita is a metabolic psychiatry clinic in Zürich with a patient portal. One is an AI doctor with no patients; the other is a clinic with no AI persona. Obvious, right?
I asked for an audit before doing anything. Here is what came back, and why the answer turned out to be a different company.
What was actually there
The first surprise was that I had the asymmetry backwards.
| Imhotep (inside Botsmann) | Vita | |
|---|---|---|
| Stores anything from the medical flow | nothing | 24 tables of clinical record |
| AI features | one chat box | four working surfaces |
| Consent, legal gating | none | consent-at-click, HTTP 451, a public regulation ledger |
| Tests | 24 files, none covering the health flow | 88 files, 1,321 tests |
Imhotep's intake form asks for your symptoms, your medications and your history — and throws all of it away the moment you navigate off the page. Nothing is stored. There is no account, no record, no continuity. It is a landing page with a chat box attached.
Vita is a working clinic.
So the honest framing was not "should these merge." It was: merging a hospital with a poster of a hospital is not a merger.
Why not to merge anyway
Even setting the asymmetry aside, the two codebases collide on five separate foundations — different login systems, different databases, different data layers, different styling, different package managers. Each one is a rewrite of one into the other, not a merge.
But the real disqualifier was not technical.
Vita's AI runs under a specific legal posture: an EU/Swiss provider under a signed data-processing agreement, patient consent recorded at the moment of first use, and a hard refusal when either is missing. Botsmann routes its prompts through free tiers of American AI providers.
You cannot pull that into a clinic. And pulling the clinic into Botsmann would hand medical-device regulatory scope to five unrelated chatbots.
The good idea hiding inside the bad one
Imhotep's marketing page advertises "MedBox" — a home laboratory with a glucose monitor, a 12-lead ECG, a blood chemistry analyser. Six devices, described beautifully.
There is no code behind any of it. Not a line.
And as a business it is a bad idea: those are regulated medical devices, several are prescription-only, and a clinic that already declined a seven-figure certification path for software is not going to walk one for hardware.
But there was something real underneath. Vita already has the schema for exactly this data — heart-rate variability, sleep duration, sleep efficiency, VO₂ max, and a field recording whether a number came from a laboratory or a patient's wrist. Thirty-nine measurement types.
What it does not have is any way to get data in. There is no import. A patient paying CHF 18,000 a year, who already owns an Oura ring and a glucose monitor, types the numbers in by hand.
Don't build the box. Build the pipe.
Same clinical payoff. No hardware, no certification, ships in weeks. That is the good idea, and it was sitting inside the bad one the whole time.
Then we went looking for a name
The new thing needed to be called something. I screened about a hundred and thirty candidate domains against the actual registry.
Thirty-six of the first forty-one were already taken. Every plain two-word compound in health is gone — every single one I tried:
| taken | taken | taken |
|---|---|---|
| openchart | everydoc | readout |
| careloop | healthspan | openvitals |
| bodyatlas | healthledger | anydoc |
| kliniq | medira | carecompass |
This is worth saying plainly, because it changes the advice everyone gives about naming. "Pick something like Doctronic" is not actionable in 2026. Doctronic-tier names are not available to be bought. What is left is coined words — which is exactly why the odd ones I kept dismissing were the only ones free.
The insight that made the search worthwhile
Somewhere around candidate ninety it became obvious that every name I had generated described the same thing: an app that collects your health data and applies AI to it.
That is the part that will be commodity within two years. Everyone will have data ingestion. Everyone will have an AI doctor. Everyone will have a marketplace of clinicians.
The product has four layers:
1. INGEST your biology, continuously, from anywhere
2. REASON AI does ~99% of it, free, always on
3. HUMAN a person in the loop where law or judgment needs one
4. LEDGER an honest record of what you are not allowed to have
and exactly which law says so
Layers one to three are a commodity. Layer four is the only defensible one, because nobody else will build it — it requires picking a fight.
I had been naming layer one for a hundred and thirty domains.
The ledger
Here is the mechanism, and it already exists in Vita in miniature.
When a feature is blocked by law, the product does not quietly omit it. It builds the feature, refuses at the exact moment it would run, and returns a specific answer: which statute stopped you, which parliament passed it, who steered it through, what it was stated to protect, and who benefits in practice.
The HTTP status for that is 451 — "Unavailable For Legal Reasons," named after Fahrenheit 451.
Scaled up, that becomes a public site: a page per jurisdiction, a page per law, a running count of transactions actually refused, and a changelog when a law moves. Not opinion — the product's own operational record.
Two design rules make it credible rather than a lobbying pamphlet:
The freedom index must be an instrument, not an assertion. Anyone can reweight it, including setting criteria to zero, and the weights live in the URL so a critic can publish their ranking. You stop arguing about methodology and start hosting both sides of it.
"Patient safety" is a claim, not a category. A law's stated purpose is a fact about the law. Whether it achieved that is a separate question with evidence on both sides, and the honest version shows the evidence that cuts against you too. A dossier that includes its own best counterargument is the one that gets cited by people who do not already agree.
What actually shipped
Not slides. Three things went to production this week:
- The clinic became a database row instead of a hardcoded constant — the change that makes a second clinic a configuration line rather than a fork.
- A test that cannot be satisfied by a comment. Two copies of the same fact are allowed here for a real reason, so a check now fails the build if they ever disagree. We proved it works by deliberately breaking it, not by watching it pass.
- A bug we only found because we published. Writing this up surfaced that every diagram on our essay site had been silently rendering as an empty box — twenty-three of them across ten published pieces. Fixed the same day.
That last one is the argument for doing this in public. We would not have found it by reading the code.
The ledger is also a map
There is a commercial consequence that took me a while to see.
A ledger that knows what is blocked where is not only an argument. It is a routing table. If the thing you need is refused in your country and permitted three hours away, the same data that produced the refusal also produces the answer — and a clinic that already receives international patients is standing at the other end of it.
That makes this telemedicine and medical tourism from the same table. The refusal is not a dead end; it is a referral.
Where this goes
The clinic stays a clinic. The platform becomes its own company, because its risk profile has no business sitting inside a two-person medical practice. And the ledger gets built first, because it is the only part nobody else is going to bother with.
The name, after all that screening, is Diplodoctor. The assistant is Diplodoc.
We are building it on our own tools — the profile here on OrangeCat, the repo through FleetCrown — precisely so that the parts that are broken become impossible to ignore. Three were broken before I finished this article.
That is the point.