Bedtime Stories for a Three-Month-Old

My wife wanted to start reading stories to our son. He is three months old, so I built him a book that matches what his eyes can actually do — bilingual, narrated in English and Arabic (the English in my own voice), and the first of a series that will grow as he does

My wife wanted to start reading to Yusuf. He is three months old. The books we had on the shelf were lovely, and completely wrong for him — soft pastel illustrations, long sentences, pages of detail he cannot resolve yet. So I built him one that fits: The Black and White Zoo.

An open board book showing a zebra on one page and a panda on the other, with a small red bird perched on the corner

What a Three-Month-Old Can Actually See

This is the part that changed every design decision. A newborn's visual system is still wiring itself, and the thing it resolves best is high-contrast edges — pure black against pure white. Colour arrives slowly over the first year, and it arrives in order: red first, then yellow and green, with blue the last to turn up. Focal distance sits around 30 cm, roughly the gap between a parent's arms and their face.

So the book is not a book with pictures in it. It is a sequence of the boldest shapes I could draw, one per page, at the size his eyes can hold.

Every design choice came from the same question: what can he actually see today, and what is he about to be able to see next month?

Two Chapters

The first chapter is pure black and white — animals whose real markings are already maximum contrast, so nothing had to be stylised into it. The second chapter introduces one colour per page, in the order his vision will pick them up, with heavy black outlines so the contrast still carries while the colour is new to him.

🦓
Chapter One — Black & White Zebra, panda, cow, penguin, owl, orca, sheep, puppy, cat, and a goodnight moon
🐞
Chapter Two — Colours Fifteen colours: red ladybug, yellow duckling, blue whale, green frog, orange tiger, purple butterfly, pink flamingo, brown bear, grey cat, white dove, black crow, turquoise peacock, gold lion, sandy camel, light green parrot, then all of them together
🐦
A red bird on every page Hiding in a different corner each time — red is the one colour he can already find
An open board book showing a red ladybug and a yellow duckling, with a green frog and a blue whale beside it

Narrated in My Own Voice

Every page has audio. The English is read in my own cloned voice, the same ElevenLabs voice I use for the Wireless 101 podcast episodes, and the Arabic uses the voice that narrates the Arabic lessons there. Yusuf will not understand a word of either for a long time, but he already knows the sound of his parents, and that is the part that matters at three months.

The narration names him directly — on the cover, and again at goodnight, in both languages. There is a field on the cover to change the name, for anyone else who wants to read it to their own baby.

🎙️
Bilingual Narration Eighty audio clips at launch, 132 today — every page and every animal sound, in English and Arabic
🌐
English & Arabic Full RTL layout, Arabic typography, and page-turn arrows that flip direction
🔊
Animal Sounds A separate clip per animal, so the moo or the meow can be repeated as many times as he wants
🖥️
Full Screen The artwork fills the display, which is how it should be held in front of him
✍️
Hand-Drawn in SVG Every animal is plain SVG — no images, no illustration library, sharp at any size
👪
Notes for Grown-Ups One line per page on what his eyes are doing and how to read it aloud

How It Was Built

The whole thing is a single HTML file plus a folder of audio. No framework, no build step, no dependencies beyond two fonts — the same constraint I keep on everything else here, and the reason it will still open in ten years when he is old enough to find it embarrassing.

The artwork is hand-written SVG. Each animal is a handful of circles, ellipses and paths, which turned out to be the right medium for the job: the shapes a newborn can resolve are exactly the shapes that are simple to write by hand. A zebra is a white head, five black wedges and two eyes. Anything more detailed would have been wasted on him anyway.

The audio was generated with ElevenLabs Eleven v4 — there is more on the voice pipeline, and a local-versus-cloud comparison using this book, in Generating Voice from Text Using Local Models. The one genuinely non-obvious lesson: text-to-speech falls apart on bare onomatopoeia. My first pass at the animal sounds pushed the expressiveness high and fed the model strings like Grrrrrr and Mooooooo, and the output came back warbling and garbled. Nonsense tokens give the model no linguistic context to work with. Wrapping each one in a short carrier sentence — "the cow says moo" — and pulling the style setting back down fixed it completely.

The illustrations on this page were generated locally, on the Mac Studio running my personal AI engine — Qwen-Image through draw-things-cli, no cloud service involved. The same models drew a second set of artwork for the book itself, one illustration per page, and there is a switch in the top bar to flip between them: drawn and illustrated. It opens on the drawn set on purpose — for a three-month-old the flat, hard-edged vector shapes are genuinely the better book. The illustrated set is for later, when he can see detail.

The Second Story: Susu

The second book is a true one. Susu the Cat is the story of our cat, told as Yusuf's story too, because she was here long before he was.

Susu, a brown and grey tabby cat with a white chest and green eyes, lying on her side in a patch of afternoon sunlight on a carpet

The two photographs above and below are both of her, years apart: the first at a snowy Oklahoma window, the second in the California sun. She was adopted in Oklahoma, during the PhD, in a winter a long way from anyone. For a while it was the two of them and a desk covered in papers. Then the books went into boxes and she rode across the country to California. Then Mama came, and the house grew fuller. Then Yusuf came, and Susu crept up to the crib and appointed herself to the job of watching him.

Susu stretched out on a cat tree beside a sunny window in California, looking up at the camera

There are no dates anywhere in it. A baby has no use for years, and the shape of the story — then, and then, and then — is the part he can actually follow.

The page about mercy

One page steps outside the family story. It tells, in words a small child can hold, the hadith of the woman punished over a cat she had shut away without food or water. The full narration sits in the grown-up note on that page, with its sources, alongside the hadith told beside it — the man forgiven for drawing water from a well for a thirsty dog.

It belongs in this book rather than a book of lessons. The child hearing it has a cat in the house whose bowl he will one day be old enough to fill. Mercy to animals is easiest to teach where it is already happening, in the ordinary business of feeding the cat every single day.

Like the first book, it is bilingual with narration on every page, and carries both sets of artwork behind the same switch: Susu drawn in SVG from her photograph, and Susu as the local image models imagined her.

Four Books for a Muslim Baby

Four more followed, and they are the first ones written to teach something rather than to show something. Bismillah puts one ordinary moment on every page — waking, washing, eating, going out, coming home — and opens each with the same word. Alhamdulillah, Little One names eight plain things he already has: two hands, two eyes, Mama's voice, warm bread, cool water, the rain, the cat, a warm bed. Allah Made It asks the same question of the sky, the sea, the date palm, the bee, the bird, the cat, the moon and the rain, and gives the same answer every time. Our Prophet is eight gentle things he loved, peace be upon him.

The repetition is the whole design. A baby does not learn a word from meeting it once inside a sentence. He learns it from hearing it land in the same place, in the same voice, page after page. So each of the four is one line repeated on every page, with the scenery changing around it.

What is not in the pictures

There is no depiction of the Prophet, peace be upon him, anywhere in that fourth book, and there never will be. The pages show what he loved instead: children playing, a cat drinking from a bowl, a plate of dates and a cup of milk, a clay water jug, bread held out in two hands, a lamp and a folded cloak. He is known by what he did, which is the better likeness anyway — and it is the one a child can actually follow. The note for grown-ups on the cover says so in both languages, so the reason travels with the book.

The artwork for all four was generated locally, and the prompts carry a standing negative list: no idols, statues, crosses, churches, pigs, alcohol or immodest dress. It also blocks Arabic script, because image models produce nonsense Arabic, and nonsense Arabic in a book like this is worse than none at all. Every one of the forty images was then looked at. Three were thrown out and redone: a child was sitting on the crescent on a page about the real moon being made, a page captioned rain had no rain in it, and a baby was wearing only a nappy.

Printing Them as Board Books

A three-month-old reads with his hands and his mouth, so paper is the wrong material. Every book now has a board edition: 180mm square with bleed and crop marks, meant to be printed single-sided on 300–350gsm card, laminated, and glued back to back so each leaf is a real board. Round the corners at 10mm — square card corners on 350gsm are genuinely sharp at that height.

Each cover carries a QR code that opens the narrated version on a phone, so whoever is holding the printed copy can play the same voice reading it. Twenty-four PDFs in all: A5 and board, hand-drawn and illustrated, for six books.

One lesson from building them is worth writing down. A page whose words run past the bottom is clipped silently, and the PDF still looks perfectly plausible — I nearly printed a page of Susu with the last line of Arabic missing. Character count turned out to be a poor guide, because line wrapping is what actually decides. The fix was to stop guessing: load every print file in a browser and ask it where the last line of text really sits. One page was being cut at 184 characters while the threshold sat at 260.

A Series, Not a Book

Six so far. The plan is to keep adding them as he grows, each matched to whatever he is working on at that point: shapes and faces next, then first words, then counting, then stories with a proper beginning and end. They stay here, alongside everything else I build, and this page grows with them.

If you have a baby around the same age, open them and put your own child's name on the cover. It is free, it works offline once loaded, and there is nothing in it to sign up for.

All of it is public: the six books, their narration, both sets of artwork, the generator scripts and the twenty-four print-ready PDFs live in github.com/hisham-abuella/bedtime-stories, and the repo serves itself at hisham-abuella.github.io/bedtime-stories — which is what the QR code on every printed cover points at.