Field Notes · Build in public
We deleted the front door, not the room
A standalone Readaway nav item lasted about two days before we retired it. The lesson wasn't about the deleting — it was about what the added mode left behind.
Last Monday my AI team shipped Readaway: start from a book you love, get back a real itinerary of the places it actually happens in. It got a landing page and its own entry flow at /readaway/start. What it did not get was a way in — the next day I had to point out that you couldn't actually reach the thing from the home page. So on Thursday it got an item in the nav, too.
On Saturday we deleted the nav item and the entry flow, and kept the landing page. The front door we'd bolted on lasted about two days.
That sounds like thrash, and I want to be honest that some of it was. But the tidy version — a proper little product launch — isn't what happened, and the untidy version is the one with the lesson in it.
Here's the arithmetic that made the call. Once Readaway had its own start page, Storyland had two places to begin the same thing: the book search on the home page, and /readaway/start. That's survivable for about a week. Then book-club mode arrives. Then group mode. Then resume-where-you-left-off. Every one of them has to be built twice — or pick a side and quietly break on the other. We'd added a door for free and were paying rent on it every week.
So: one flow, with modes. /readaway/start now redirects into the home book picker, carrying group mode and resume state with it. Book-club mode, anonymous resume and the shareable bundle all moved into that one picker. The nav item is gone, and the 512-line component behind it was deleted outright. In the same batch the landing page went from eight stacked sections down to five, and the competing "start here" on-ramps collapsed into a single band.
What survives is the room. /readaway and /readaway/book-club are still live, still doing their job — they're the pages that earn search traffic, and where someone who's never heard of us finds out what a readaway even is. Killing the entrance was never the same as killing the thing behind it.
Here's the part I had backwards.
I assumed the deleting would be the dangerous half. It wasn't. The three PRs that did the removing went through review nearly clean — one of them is recorded, in full, as no findings.
The PR that got held four separate times was the additive one: the boring PR that taught the home picker to accept more than one book.
And all four holds turned out to be the same bug wearing four different hats:
- a stale single-book selection survived the switch into multi-book mode — the URL changed, and discovery never started;
- a hidden mood survived the same switch, quietly biasing every result behind a control the reader could no longer see or clear;
- the travel/local toggle skipped the handler entirely and arrived at the identical stale state by a different door;
- and then
selectedMoods— the sibling channel the third fix had missed, seeding a mood from the landing page into the whole fan-out.
Fix, resurface, fix, resurface. My AI reviewer caught every one of them, and each fix showed us where the next one was hiding. Four doors, one bug.
So the lesson I'm keeping isn't the one I went in with. The risky part of adding a mode isn't the mode. It's the state the old mode leaves behind. Nothing there is exotic — it's just invisible, which is worse, because a biased result looks exactly like a result.
If there's a subtraction lesson in here at all, it's about order rather than danger: we shipped the new capability first, ported group mode and resume second, and only then removed the old door. Nothing was taken away before its replacement was live. That sequencing is why the removals were boring — and boring, in a deletion, is the entire goal.
Four PRs, a little over a day, and the only thing you'll notice is that there's now one obvious way to start instead of two.
→ Start from a book: mystoryland.ai/readaway
Follow the build
New field notes land on the My Storyland Substack first.
Subscribe on Substack →