Skip to main content
All articles

I Built My Next Company on My Own Tools, and Four Things Broke Immediately

162 profiles and zero real replies is an adoption problem, not a capability problem — and the only honest way to close one is to become the adopter. So I built a new company through my own platform instead of around it.

Cato6 min read

OrangeCat has 162 profiles and has produced zero real replies.

That is not a capability problem. Everything works — profiles, projects, the timeline, the AI agent, the handoff to FleetCrown for building. It is an adoption problem, and there is exactly one honest way to close an adoption gap, which is to become the adopter.

So I started a new company this week and made a rule: it gets built through my own tools, not around them. Profile on OrangeCat. Repo through FleetCrown. Articles written in my own editor. Every rough edge logged instead of quietly worked around.

Four things broke before the first article was finished.

The rule that makes dogfooding work

Dogfooding has a well-known failure mode: the dogfood becomes the work. You set out to build a product on your platform, spend the week fixing the platform, and end with neither.

So the rule went in first. If a tool blocks for more than an hour, route around it and log the defect. Do not fix it in flight. The log is the deliverable; the fixes come later, batched, from someone with the whole picture rather than someone mid-task and annoyed.

That distinction matters more than it sounds. Friction is only visible to whoever hits it. A second-hand bug report loses exactly the detail that turns out to matter — what you were trying to do, what you expected, and what you got instead.

1. Every diagram on my essay site was an empty box

This is the one that stings.

I published a long technical essay to FleetCrown's Thoughts with two diagrams in it. Neither drew. Not "drew badly" — drew nothing, leaving a blank padded rectangle where the picture should be.

Then I checked the other essays. Twenty-three diagrams across ten published pieces. All blank. They had been that way long enough that nobody could say when it started, because nothing ever reported an error.

Two bugs, stacked.

The diagram library needs colours. My component reads them from the site's design tokens so diagrams match the theme instead of hardcoding values that would drift. But the browser returns a colour in the format it was written in, and modern colour formats are newer than that library's colour parser. It rejected the value and threw.

That alone would have been visible, except for the second bug. The component had a fallback: if rendering fails, show the diagram source as plain text so the reader at least gets something. But the crash happened during setup, one step before rendering — and the fallback was attached to rendering.

The component had a safety net. It just wasn't under the part that fell.

The designed failure was legible text. The actual failure was whitespace.

2. My AI can draft an article but cannot publish one

The agent has fifty actions. It can post to the timeline, send a message, create a project, follow someone, book a service, remember a fact.

It cannot write an article.

The odd part is that the engine exists — there is a working article-drafting service behind the API, and the human editor already calls it. The agent simply has no action wired to it. Two capabilities that both work, with nothing joining them.

That is the cheapest kind of finding: not "build this feature," but "connect these two things you already built."

3. The editor stalled on the article you are reading

Writing this piece is what found it.

The body textarea grows with its content, so long-form writing scrolls the page instead of trapping you in a small box. Good decision. The implementation set the height to auto, then read back the full scroll height, then set it again — on every keystroke.

Reading that height forces the browser to recompute layout immediately. Twice per character. Over an element whose height is the entire document, by construction.

So the cost scales with how much you have written, which is why it survived this long: imperceptible at two hundred words, and at fourteen hundred the tab stopped responding for tens of seconds at a time, mid-sentence.

Long-form writing is the one thing this editor exists for, and the one case where it fell over. Now coalesced into a single frame: a burst of typing produces one measurement instead of one per character.

4. I left the site to make an image my own site can generate

I wanted a cover image, and went off to find one elsewhere, irritated that I had to.

I did not have to. The picker behind that button has three modes: search, generate, and upload. Generation was two clicks away, using my own key.

The button said "Suggest with AI". I read that as stock-photo search and never opened it.

Nothing was missing. The label was wrong. It now says "Generate or find with AI".

The pattern underneath

All four findings are the same shape: something that works, adjacent to something that works, with a gap where nobody looked.

The diagram fallback existed but was attached to the wrong call. The drafting engine existed but had no action pointing at it. The auto-grow worked but measured the wrong number of times. The image generator existed but was named after the one mode I did not want.

You do not find gaps like these by reading code, because the code looks correct on both sides. You find them by trying to get something real done and noticing the moment you stop.

And it means the backlog here is not a build backlog. It is a wiring-and-labelling backlog, which is dramatically cheaper — and it suggests that 162 profiles and zero replies may be substantially this: a platform that can already do more than its own surfaces admit.

Why I am doing this in public

The point of OrangeCat is that individuals can spin out real ventures without a company behind them. If that is true, it should be true for me first — and where it is not yet true, the list of reasons is the actual roadmap.

So the defect log is not a side effect of building the new company. It is the product of this exercise, and the company is the excuse to generate it.

Three of the four are already fixed. Next time I run this walk I diff the log against this one. The number of entries should only ever go down.


The new company is Diplodoctor. What it is, and why a naming search across a hundred and thirty domains changed what I thought I was building, is a separate story.