Wukong & Friends, Updated: Nine Bilingual Books and a Download Button I Deleted
Oct 23, 2026
Three days ago I wrote up Wukong & Friends: five free bedtime picture books, the model sheets that keep a drawn monkey recognizable, and the publishing path that lets a private repository feed a public site. The site is still at phg1024.github.io/wukong-and-friends.
A lot has changed since. Three of those changes were me deciding something I had written about was wrong — the download countdown, the page counts, and the word "free".
The books
What a book is changed more than what a book contains.
Nine titles, two languages
Four new books: Wukong and the Tiny Tomatoes, Wukong and the Snowy Zigzags, Wukong Plays in the Sand and Wukong's Painting Class. Two of the original five got redrawn into the current crayon style, so the shelf finally looks like one set instead of a set plus two stragglers.

The bigger change is that the books went bilingual. The website always was, which was a stylesheet and a second copy of every page; books are a different problem — separate text per language, its own typography, its own author-page copy, its own PDFs.

That needed a review pass I did not have. Chinese text that is grammatically fine and still reads like a translation is a real failure mode, and an early pass on two new books came back with essentially "no age-four kid says this," so the lines went away. I had a review step for art continuity and none for language naturalness, an asymmetry I only noticed once the second language existed.
What one book ships now
The first post said two PDFs and four sheets of paper. Both numbers are wrong now, because a bedtime book turns out to want an ending.
| Before | Now | |
|---|---|---|
| Story core | 16 pages | 16 pages (unchanged) |
| Digital reading PDF | 16 pages | 18 — author page + illustrated back cover |
| Booklet | 16 pages, 4 sheets | 20 pages, 5 sheets |
| PDFs per title | 2 | 4 — reading and booklet, in each language |
The booklet is built from the core file and never from the reading version, or the author page and back cover arrive twice. That rule exists because I tried the convenient thing first.
The licence moved inside the file
The first post said "free" and leaned on a watermark. Free is a feeling; a licence is a sentence.
Everything is now published under CC BY-NC-ND 4.0, in four places: the licence text on the site, the year and my name printed on the author page inside every book, the rights notice written into each PDF's copyright and licence metadata, and a copyright-noticed set of character portraits. A rights notice that only exists on the website evaporates the moment someone forwards the PDF to a friend, and forwarding the PDF to a friend is the entire point.
The pipeline
Two changes to how books get made, both about things I had under-specified.
Continuity stopped being only about characters
The first post's lesson was one identity reference per character, and layout lives in words. That held. What I hadn't accounted for is that a page is not only a character — it is a doorway, a courtyard, a kitchen, a pile of cherry tomatoes, and one page-turn later the model will happily rebuild all of it somewhere else.
So settings and props got the same treatment: versioned, referenced, with receipts. Wukong's home courtyard and its doorway are assets now, and the tomatoes have a hand-scale reference so a tomato stays the size of a tomato. When a page comes back wrong, the fix is generated against the fixed scene rather than a fresh description of one, which is the only reason pages 5, 7, 9 and 12 of one book ended up in the same house as each other.
The cast, and the check that keeps it honest
Eighteen character entries now. The rabbit has a name — Jade Rabbit, 玉兔 — and is a girl, which was decided by a four-year-old and is therefore canon.

The friends page splits them into in the stories so far (Wukong, Pigsy, Sandy, Jade Rabbit, Ao Bing, Princess Iron Fan, Nezha) and coming up (the Bull King, Chang'e, the White Dragon Horse, Tang Monk). What makes that worth a paragraph is that the split is generated from a record of who actually appears in published text and art, matched to each book's current edition — and a release check fails if a friend appears in a published story without being promoted. "Coming up" next to a character who is already in two books is worse than not mentioning them, and the only honesty that survives contact with a build script is the kind that fails the build.
Reading it
Everything in this group is about the moment a parent opens the site at 7:40 in the evening.
The countdown is gone
The thirty-second wait before a download is gone. Download links are ordinary links now: they start immediately, and they work with JavaScript switched off. The support ask moved to the author page at the back of each book, where it sits after the story instead of in front of it.
Nothing should stand between a child and a story, or between tired parents and a calmer bedtime. That was the whole point.
Reading it instead of downloading it
Embedding a PDF in a page is the obvious move and it is bad on a phone: a scrollable grey rectangle, a toolbar, and a download you never asked for. The books now render in a plain page-turn reader — one finalized page image at a time, no PDF runtime, no third-party viewer, no eager download of the whole book before the first page appears. It stays collapsed until you open it, so the page you came for is still the page you came for.
Findable, and pitched at the right level
Story text is now real HTML on each book's page rather than only pixels inside a PDF, with a sitemap and structured data on top. A story whose text exists only inside a PDF is invisible to anyone who cannot open the picture.
The vocabulary band that the first post described as a feeling is now a table: staged reading levels with a target age in months, a difficulty coefficient, and vocabulary and sentence-length targets, assigned before a story is written. Stories are also grouped into thematic series deliberately not tied to level, because a kid who wants the one about the aquarium should get the one about the aquarium.
Publishing it
The machinery got more paranoid, in both directions.
The publisher lied to me once
The first post said the deploy's last step fetches the live URL and fails if the content did not arrive. True, and more interesting than I made it sound, because that check has been wrong in three different ways: it truncated large pages, a cached response made a stale page look freshly published, and once the workflow reported a clean publish of content that had not arrived at all — a green checkmark on a lie. Releases now verify the deployed pages and the actual PDFs, per book and per language.
Approval is not the same as deployment
The same instinct moved editorial. There are six explicit review checkpoints between a story idea and a published book, and two rules get repeated in the docs until they are boring: a local preview, a valid signature or a green deploy is not approval, only evidence that the machinery worked; and approved-for-production is not approved-for-publishing.
Next
Four friends already have finished sheets and no story: the Bull King, Chang'e, the White Dragon Horse and Tang Monk. They are the nearest queue.
Behind them is a plan rather than a wishlist. The reading levels run from four years old to six and a half — twelve books at the first stage, eighteen at the next, twenty-four after that — with the first three stages confirmed and the later ones an honest guess. Math and science each have five books outlined as a sequence; the math five run counting, then more and less, then numerals and size, then comparing lengths, then measuring with the same units twice. Four individual stories have outlines waiting on review: Jade Rabbit's first ballet class, an aquarium trip, a brick-building day and a swimming lesson. Underneath all of it is a backlog of things a four-year-old asked for — magnetic tiles, a farm with a little train and rabbits to stroke, a redwood hike with deer and banana slugs.
Two rules carry forward. Every new book ships in both languages from the first draft rather than getting translated afterwards. And an outline, a set of sketches and a published book each need their own yes.
The last thing on the list is a typeface: a licensed hand-printed face for the English pages, so the letters are a decision instead of whatever the rendering machine happened to have.