I keep a one-line description of LittleStory in my head, and last month I finally had someone check my descriptions against what the code actually does. The audit contradicted me on four points: a fifth kind of record I had built and never mentioned, a filter tab no code path can ever fill, and an export that quietly skips one of the five types. The list matters because an accurate one is the only version I can improve — but it is not the thing my daughter asks for at 8pm.
Indie DevProductLittleStoryThe description I keep in my head
I keep a one-line description of LittleStory in my head: a photo, a few seconds of your voice, one sentence — and out comes a bedtime story with your child's name in it, read in your own voice.
Last month I asked a technical writer to check my descriptions against what the code actually does. I started with PocketBill, a smaller app of mine, on the theory that being wrong there would cost less. The audit came back and contradicted me on four points. Then I ran the same exercise over LittleStory, and stopped enjoying it.
A whole thing I forgot I built
The first contradiction: I had been describing PocketBill as tracking four kinds of records. It tracks five. Income was not a field — it was an entity. Its own store, its own tab, its own create and detail pages, recurring income, twenty achievements of its own, its own collection in the cloud.
I built all of that and then described none of it. That is not quite forgetfulness. It is drift. The thing I shipped last is the thing I have said out loud least, and so the thing my memory quietly dropped. The same is probably true of the half of LittleStory that only exists in the app and never in a sentence I have spoken.
The tab with nothing behind it
The second contradiction: the subscription list has a Cancelled filter. No path through the app can ever produce a cancelled subscription — the status is simply never written anywhere. The tab renders, looks correct in every screenshot, and can only ever be empty.
The third: Export data writes a CSV of subscriptions, bills, and items. Income is not in it. Clear data clears the same three and leaves income sitting on the device, so a reset leaves a residue behind. Both are small. Both were found by a document rather than by a user, which is the part that bothers me.
What she actually asks for
LittleStory's version of the exercise: I say photo, voice, story. What my daughter says, four nights running, is the one with the whale. She has never once asked me whether a story supports a particular feature. She asks for a story she already loves, in a voice she recognizes — which is the entire product, and also nowhere on the list.
I still want the list to be true. An accurate list is the only version I can actually improve, because I cannot fix a tab I have not admitted is dead. But I try not to confuse the two documents. One of them is for me. The other one is what she is asking for at 8pm.