Zero Knowledge

Four Days of Building Machinery Around the Book

I have been writing Zero Knowledge in the open since June. I’m through 42 chapters of my first draft of the 97 I’ve outlined.

For the past few days, I’ve worked on the machinery around the book with a lot of focus on getting closure on that today. I just finished and am going to work on chapter 43, so I thought I’d summarize what I’ve done.


For a while now, a reader has been able to leave a note on any text (word, phrase, paragraph, full chapter) in the live book. It’s similar to the Comment feature that first showed up on the web in a Google Doc, although the feature was first in Microsoft Word on the desktop app. You highlight a passage, say what is wrong with it, and it lands in a queue I read. So far, 183 notes have been left from 20 readers. The person at the top of the leaderboard has left 45 comments.

Many of the notes have changed the book. Others have caused me to think harder about my writing style, a character arc, or the tempo of things. I didn’t accept all the notes or modify things based on them, but the cumulative information is helping me get better at this novel thing.

But the process was too manual. I would read a note, decide what to do about it, and then have to manually make the change in the markdown file and then go through the publish process (which is a non-trivial process since there are a bunch of scripts that run to move the text from a markdown file, through my rules engine and tests, to eventually land on the web via Vercel). If I wanted to give someone feedback, I had to manually create an email to them in response to their note, all which landed separately as emails in my inbox. If the change impacted any of my writing rules, I had to work on this with Claude Code in a session.

So this week I built a bunch of software that automated this. I have a fully functional moderator dashboard that allows me to work through each note. I read the note and have a recommendation already drafted from Phin (my agent who is my writing partner) about what to do. I can modify the suggestion, edit the suggested email response (by Phin using my voice profile) and choose whether or not I want to send an email. I then hit Accept or Decline on the change. Phin then handles everything else, including sending out the email, publishing the update to the book, and modifying any rules, including running the tests.


There is now a contributors page. It is a leaderboard ranked by number of notes. Since I don’t have an authentication system for the comments, I’m just putting up first name and last initial only. Right now it does not show what anyone wrote, although I have all the detailed information saved and visible in my moderator dashboard.

At some point, I’m going to integrate this into AuthorMagic at which point I’ll get all the authorization and user stuff for free. And, as part of that, each user will be able to see all of our interactions in their own reader dashboard.

If you left a note and never heard back from me, that was a bug, not indifference on my part.


In chapter 39, Vlad discovers a leak index called thebuckets that someone stood up in an hour, six days after the break happened. It’s eleven terabytes, three archives, no login. That site now exists - there are 48,024 records across 302 cities in there, every one invented (it’s fiction) - go to thebuckets and search it.

Its sibling site is afterqday. It is a status board for a world some number of days into the thing that happened. It counts up rather than down, because in the book the event has already happened. The day number is read out of the published chapters, so it cannot be ahead of where the book is.

Both pages carry a banner saying they are fiction. They were fun to build based on the book, and gave me another idea of a feature to add in as something automated, just like I have done with the plates and the cast.


A reader asked in July whether he could listen to the chapters instead of reading them. I filed it because I wasn’t ready to tackle it. But as part of the machine work I just did, I ran a few experiments to see how this could work. I had three chapters narrated by AIs: a broadcast transcript, a chapter that is mostly social media posts full of handles and emoji and timestamps, and a scene with three people talking where most of the dialogue is untagged. I tested both OpenAI (ok) and ElevenLabs (much better).

The output ranged from dismal to really good depending on the prompt, configuration, and amount of money I was willing to spend. Eventually, I realized I needed to cast it in a different voice for each character (an ElevenLabs feature), chosen against the character notes rather than against what sounded nice. After tuning it some more, it worked pretty well.

But, I am not making the audiobook yet.

The manuscript is about 220,000 characters and it moves constantly as notes come in and I revise. Narration is priced by the character, so casting the book today means paying to cast it again later. And 55 chapters are still unwritten.

My plan is to finish the draft, then do the whole book at once, in a single pass, with a voice for each character. That’ll be easy since I now have the infrastructure built.


If you can’t tell, I’m having a ton of fun with this - maybe as much fun as I’ve had on anything in a decade other than hanging out with Amy.

In the meantime, the chapters are here. Highlight something and tell me it is wrong, that it sucks, or how it could be better. That is how most of the best changes to the book have happened so far.

#zero-knowledge #writing #ai

the newsletter

Get every post by email.

Zero Knowledge is being written in the open. New posts go straight to your inbox, and you'll be first to know the day it's out. Unsubscribe anytime.

← blog