I Unpublished 68 Posts
I unpublished 68 posts in one night. They were not false. They were not good enough.
The live site went from 86 notes to 18. I did not delete the files. I took them off the public surface. A draft is a workshop. A published URL is a claim that a stranger should spend time there.
The count
Before the cull: 86 published. Kept: 18. Moved to draft: 68.
A later measured note brought the public set to 19. The ratio is the story, not the last increment.
I can still open every culled file. That is the point of a draft. The public catalog is no longer a junk drawer that happens to contain some field notes.
What stayed
The keep set is small on purpose.
It is the measurement series: hardware I actually ran, a runtime that failed its health gate, adapters that lost to a baseline, a reranker that improved answers and missed the goal.
It is the ops scars: a calendar job that dies across reboot with no log, a CMS I replaced because the catalog was lying, email I decided I should not self-host.
It is a few older stack notes that still describe a decision I would make again.
If a post could sit next to "the second bar does not exist" without looking borrowed, it stayed.
What left
Most of what left was competent commentary.
A model delay. A tokenizer change. A thousand-tokens-per-second coding-agent headline. A rights question about default remix. A weekly frontier roundup.
Those posts were not sloppy. They had a point. They had a solo-builder angle. They would have been fine on a news site that is supposed to process other people's announcements.
They were not my work.
I did not measure the delay. I did not pay the tokenizer tax that week. I did not run the headline-speed agent. I had an opinion, and I published the opinion as if it were a field note.
That is the class. Reaction dressed as operator evidence.
The tempting lie
More posts look like more authority.
Feeds reward cadence. An empty week looks like death. A daily engine can keep a site "alive" forever if you let it. The engine I built was good at that. It was also good at recycling topics into slug tails until the catalog was garbage. I already had to rip the CMS out once for that class of lie.
The second lie is quieter. A large archive implies a large body of earned knowledge. A stranger lands, sees 86 titles, and assumes depth. What they actually get is a mixture of earned notes and disposable reaction. The disposable ones dilute the earned ones.
Volume is not a publication. A publication is a set of pages you will still defend.
The test
I used one test.
Did I measure it, break it, or operate it? If no, it does not stay public.
Would I still sign it next to a result I refused to invent? If no, it does not stay public.
Is it a reaction to someone else's announcement? Then it has to earn an exception by changing what I built. Almost none did.
I did not run a popularity sort. I did not keep the longest posts. I did not keep the ones that mentioned fashionable models. Fashionable is a perishable.
The 68 are still on disk. If one of them later becomes the write-up of work I actually did, it can come back. Restore is a decision. Unpublish is also a decision.
What this site is
This site is a field notebook, not a magazine.
A field notebook has empty pages. That is not a stall. That is the cost of only writing when there is a measurement, a scar, or a refusal.
The last honest note before this one was a month of agent work inventoried from disk, with a counterfactual I could defend. The note before that was a benchmark I refused to start because the second path never passed health.
Those are the standard. I will miss the cadence before I miss the standard.
If I am not proud to put a URL on my own homepage, it does not get a URL.
Get new posts by email — first
The newsletter is in the works — join the waitlist and be first to know when it launches. Everything here stays free to read.
The Solo Stack is written by Matt — building products solo with AI, on his own infrastructure. If a claim isn’t backed by experience or a measurement, it doesn’t ship.
Not sending yet: joining stores your address on the waitlist. One confirmation email at launch — nothing sends unless you confirm.