I Built an Operating System to Write Blog Posts
I still do all the writing.
I’m having way more fun writing these days. I picked up some basic coding skills building our in-house CRM, and without really thinking about it, started using those same tools to make the execution side of writing easier. Less context switching. Less friction between the idea and the finished thing.
Someone recently told me my process was “unusual.” It didn’t feel unusual. I just used the tools the way that made sense to me.
That could be a great thing for writing, though. We’re talking about writing more than ever. Did AI write this? Is this slop? What’s an em dash?
I hope more people start writing again. Writing used to be badass. Writers used to punch people. Now we invent entire job titles to avoid calling ourselves one. Creator. Thought leader. Prompt engineer.
Prompt.
Engineer.
Prompt engineer is my favorite of these don’t-call-it-writing neologisms because much of it feels like everything that writing is not.
It’s technical. It feels like it would have a company-issued fleece. It actually has its own subreddit and salary surveys and LinkedIn influencers.
Hemingway would have been a prompt engineer. Short sentences. Clear instructions. Old man + Sea. Zero-shot. Done.
This is why I use coding tools. When I write, the syntax highlighting makes my sentences look like code. Between us friends, I’ve been chasing this feeling since I was ten. I read Cyber.kdz as a kid — the covers were designed to look like computer interfaces. Email clients as narrative frames. That sort of stuff.
And now I get to live that out. I call it Claude Prose. The CLI-native architecture for forward-deployed metaphysical engineers and semantic operators.
Random words turn purple and green and stuff which all feels badass. But it’s bigger than that. The aesthetics aren’t separate from the work. They’re part of how I trick myself into doing it.
Another observation from my journey: the cloud ruined writing because there’s never an “end.”
Think about it:
Typewriter: ding
Word Processor: a crisp press of ctrl+s
Google Docs: … eventually you just close tab 4,000 and it just kinda saves.
But writing in a terminal totally changes the game because the process feels like an accomplishment. There’s a endpoint:
“hell yes. commit that shit” Then absolutely hammering the enter key.
It’s extraordinarily satisfying. And permanent. Something for a “what did I accomplish today” standup.
But outside of feeling cool, there are some genuinely helpful use cases I’ve discovered.
Like Strunk and White said “omit needless words” so I implemented it as a shell command.
> grep -c "I think" draft.md
> 14Weak phrases accumulate. I don’t catch them while drafting because I’m thinking about the argument. The cleanup is mechanical.
Sometimes I just need to vent mid-session. Version control doesn’t judge.
> git checkout -b smoking-hot-takeIf I decide the rant was actually good, I merge it. I mean I haven’t yet, but I could. Stash that in my back pocket for later.
> do less. publishing on substack, not the journal nature*I was finishing a research piece on vertical software. Claude read the draft, proposed visualization opportunities, created ten Datawrapper charts via API without me touching the UI. Added source citations. Converted inline links to endnotes. Then I changed my mind. Claude adjusted. That’s the point. I make judgment calls. The machine handles mechanics.
I don’t “accept output.” I accept changes. One makes you an editor of machine slop. The other makes you a writer with a very fast intern.
> git log --oneline | head -5
> af892c fix: removed 12 instances of "very"
> 7d3b2a fix: added 3 back. they were load-bearing.
> 3c9a0f refactor: split section 4 into two parts
> b8e2c1 fix: reunified section 4. the split was wrong.
> 2f0b9c init: first draft from obsidianMy commit history is the most pathetic proof that AI didn’t write this. Not proof of craft. Proof of work. Or proof of an inability to just land the plane.
That said, writing regular old words with code-first tools has created some... awkward moments. It’s like these tools have never seen natural language sentences and now it’s time to show off.
Like I might be in the middle of hacking together something Substack-y. Something like “Why COBOL and Claude Explain Plumbing SaaS in 2026.” Internet VC writing stuff.
Then out of left field, I start getting these weird flags.
Class conflicts. Inheritance issues. Broken parent-child relationships. A whole bunch of orphans. Secrets and keys and characters in various states of escape. Pip.
Since when is code so fucking Victorian? I get it. You read a couple books. Stay in your lane, chief.
I told it the literary flexes were starting to bug me and it started a debugging session which printed the following:
> WARNING: output is verboseI didn’t ask for notes.
Also:
✽ Recombobulating... (6m 9s · ↑ 40.3k tokens)AGI is still a few weeks away.
*Nature is the only journal I know.



