Notebook

The coach shipped in four days

Eloist had a retention problem: people loved the analysis and did not come back. Four days later a made-up coach was mailing them videos about their own games. The speed came from a shape, and the shape is transferable.

FOUR DAYS, BY NIGHTFALLWHAT EXISTED AT THE END OF EACH DAY. THE DIAMONDS ARE CHECKS, SHIPPED WITH OR BEFORE THE FEATURES THEY GUARD.DAY 1ONE REAL GAMEA SILENT CLIPBOARDS DRAWN FROM THE RECORDDAY 2THE SCRIPT, THE VOICETHE ACCURACY GATEDAY 3THE QUEUE, THE WORKERTHE SYNC AUDITDAY 4THIRTY-FIVE LETTERS OUTTHE FIRST REPLY,UNPROMPTEDNO STEP WAITED ON A ROADMAP. EACH DAY SHIPPED SOMETHING A PLAYER COULD HAVE BEEN SENT THAT EVENING.

Eloist analyses your chess games and tells you where they turned. People ran a batch, read the verdicts, said kind things, and did not come back the next week. The analysis is a tool, and nobody misses a tool.

The coach was the next bet, made in week seven of a product that had never slowed. Eloist shipped analysis on day one, billing on day three, ads on day seven. Forty-seven of its first forty-eight days have commits in them.

ANALYSIS · DAY 1BILLING · DAY 3ADS · DAY 7THE COACH · DAY 44DAY 1 · 10 JULYDAY 481,632 COMMITS. 47 OF 48 DAYS HAVE WORK IN THEM.
Every day of Eloist in commits, day one to now. The coach, in brass, arrived in week seven and shipped in four days.

A two minute video about your own recent games: your positions, your clocks ticking down, your worst move named out loud by a voice with opinions. That sounds like a quarter of roadmap. It took four days, and the four days taught us more than the pipeline did.

Guards on day two, scale on day three, users on day four. That order is the speed.
FOUR DAYS, BY NIGHTFALLWHAT EXISTED AT THE END OF EACH DAY. THE DIAMONDS ARE CHECKS, SHIPPED WITH OR BEFORE THE FEATURES THEY GUARD.DAY 1ONE REAL GAMEA SILENT CLIPBOARDS DRAWN FROM THE RECORDDAY 2THE SCRIPT, THE VOICETHE ACCURACY GATEDAY 3THE QUEUE, THE WORKERTHE SYNC AUDITDAY 4THIRTY-FIVE LETTERS OUTTHE FIRST REPLY,UNPROMPTEDNO STEP WAITED ON A ROADMAP. EACH DAY SHIPPED SOMETHING A PLAYER COULD HAVE BEEN SENT THAT EVENING.
The build as a staircase. Each plateau is what existed by nightfall, and each check shipped with or before the feature it guards. The first unprompted reply arrived within a day of the letters.

Four days, in order

Day one produced a silent clip of one real game. The product's own code draws the board, one frame per move, straight from the game record, with the player's real clocks. That rule, anything factual is rendered rather than generated, went in first, so every later step could trust its input.

Day two added the voice and the refusal. One model writes the coach's script from the verified record. A second model then tries to disprove every chess claim in it, under orders to assume the script is wrong. A script that fails twice dies, and the player gets nothing that week. Nothing is the good outcome; a coach wrong about your own game is worse.

Day three made it a machine: a job queue, one worker that renders episodes one at a time, and a timing audit that measures each caption against the spoken words and fails the whole build past two seconds of drift. Day four mailed thirty-five letters, each carrying one link that only its owner can open.

How the checks work inside an episode is its own post, linked below. This one is about everything around them.

One worker is enough

ONE WORKER, AND A QUEUE THAT FORGIVESQUEUEA TABLE OF JOBSWORKERONE, SERIALSENTROW WRITTENPARKEDWITH ITS ERRORCLAIMED: NAME AND TIMESTAMPED ON THE JOBEPISODE IN STORAGE,LETTER OUTFAILED: BACK IN LINE,ONE STRIKETHREE STRIKESA STALE STAMP MEANS THE WORKER DIED MID-JOB. THE JOB GOES BACK IN LINE; NOBODY RENDERS IT TWICE.
The queue discipline. A claim is a name and a time stamped on the job; a failure is a strike and a trip back in line; a third strike parks the job with its error attached.

The worker is deliberately serial. An episode takes about four minutes of wall clock and costs about seventeen cents, mostly voice and script. One cheap machine working through a queue covers every player the product has, so parallelism would buy nothing except new bugs.

The queue does the forgiving. Before touching a job the worker stamps its name and the time on it, so a restart never renders the same episode twice. A failed job goes back in line with a strike against it. Three strikes and it is parked with its error, because one un-renderable game would otherwise keep a worker busy forever.

Two smaller rules finish the discipline. A claim can go stale: a worker that dies mid-render leaves its name stamped on a job it will never finish, so a sweeper releases any claim older than the longest honest render. And when a person asks for an episode from inside the product, that job jumps the weekly batch. The batch has all night. The person is watching now.

The pipeline also remembers what it has said. Every delivered script is kept, and before covering a game the worker checks that record, so one game is covered once, ever. A coach who retells last week's game word for word stops being a coach and becomes a recording.

The day usage went real

On the first real day, both model providers stopped answering within hours of each other. Neither was down. The accounts had run out of prepaid credit, because demo traffic became real traffic and nobody redid the arithmetic. Prepaid credit is a rate limit you set weeks earlier and then forget you set.

The queue turned the outage into latency. Jobs failed, took their strikes, and waited; once the accounts were funded the worker drained the backlog unattended. A pipeline that ships in days will meet its first real load before its operations mature, so it must be built to wait rather than to break.

The mailing taught the other lesson the hard way: a retried job mailed one player the same letter twice, because nothing recorded that the first copy had gone out. The mail service knows what it accepted, and no more.

So the sender tracks its own sends. Only the pipeline knows what it meant to send, to whom, about which games, so the worker writes one row per letter at send time and checks that table before sending. Every question since, from did she get one to never send twice, reads the same table.

What four days buys

None of this pipeline is hard to copy. A competitor with the design doc could rebuild it. What is hard to copy is the cadence: a studio that turns a retention worry into a shipped experiment in four days runs a dozen honest bets a quarter and keeps only the ones users answer.

This bet got its answer fast. The first reply arrived within a day of the first mailing, unprompted. Eleven people have voted on the watch pages, and all eleven chose more of this, please. Twelve further taps asked for specifics, longer episodes and blunder breakdowns ahead of the rest, and 26 percent of the letters drew a same-day click.

Around 120 episodes are out now, and the weekly one queues itself: a ten-minute check catches every account with a fresh analysable game, and the first episode no human touched went from queue to inbox on the morning of 25 August. Small numbers from a small product, and still a better week-one signal than a quarter spent defending a guess.

The checks inside an episode