YawnTales: bedtime stories made for the moment
A subscription SaaS product for families: member accounts and recurring billing wrapped around an AI pipeline that writes a bedtime story, has a panel of other models check it for safety and quality, illustrates it, narrates it in a chosen voice and mixes music underneath, with a Christian mode for Christ-centred content.
YawnTales is a subscription product for families: member accounts and recurring billing wrapped around an AI pipeline that writes a bedtime story, has two other models check it for safety and quality, paints the cover and interior scenes, narrates it in a chosen voice and mixes music under the narration. We built it, we run it and we charge for it, so it shows the full shape of a paid AI product rather than a demo.
- Product
- Subscription SaaS with a multi-model AI pipeline
- Audience
- Parents, carers and families who want calmer bedtime content without starting from a blank page.
- Live site
- yawntales.com
- Work involved
- SaaS product build with member accounts and household profiles
- Subscription billing with Stripe and RevenueCat
- Multi-model generative AI: writing, review, illustration
- AI voice narration and audio engineering with ElevenLabs and FFmpeg
- Web app plus iOS and Android builds
Nobody invents a story well at 7:45pm
Parents want a story that suits the child, the day and the mood, and bedtime is the exact hour when nobody has the energy to make one up. Plenty of apps generate stories. Very few handle affirmations, meditations, narration, faith-sensitive content and safety checking in the same place, and almost none of them have to hold up as something a family renews every month.

What we built
YawnTales is a full subscription product. Member accounts, household profiles for each child and pet, monthly plans, recurring billing and failed-payment states wrap an AI core that turns a short prompt and a few choices into bedtime-ready content: stories, affirmations and meditations shaped for age, tone and theme. A Christian mode produces Christ-centred stories for families who want them. Then the story gets a painted cover, optional scene illustrations, a narrator the parent picked after hearing a preview, and music under the voice.

Where the AI earns its keep
The writer is one model, but it never gets the last word. Every draft goes to a panel of judges from different vendors (today GPT-6 Luna and Gemini 3.8 Flash) that each hand back a structured verdict against a fixed schema: is it safe for this exact listener, how good is it out of ten, and what should change. One objection sends the draft back to the writer with the notes attached; agreement rejects it outright, and the verdict is stored on the story. That matters because the audience is children and the product is paid, so safety has to work on the first attempt and quality has to be worth renewing for. Audio is the other half: ElevenLabs narrates in chunks, FFmpeg stitches and mixes an ambient track underneath, and the whole pipeline is arranged so the slow parts overlap instead of queueing.
The one we point to when someone asks about SaaS and AI
This is a product we built, run and charge for, which makes it a more honest answer than a demo. It carries the parts that decide whether a subscription business survives contact with users: accounts, recurring billing, failed cards, content safety that has to work every time because children are the audience, and generation costs (text, judges, images, narration) that have to sit under the monthly price.
Build notes
- Aurelia 2 front end on Firebase (Auth, Firestore, Cloud Functions, Storage), shipped as a web app, as iOS and Android builds through Capacitor, and with a React Native companion app on the same backend.
- Every model call goes through one adapter, so the writer (Gemini 3.8 Flash), the helper tasks (GPT-6 Luna) and the review judges are configuration rather than code. Swapping a model is an environment variable, not a release.
- A cross-vendor review panel reads every draft before anyone hears it. Each judge returns a structured JSON verdict: safety issues by category and severity, a quality score out of ten, and notes for the writer. The panel rejects on agreement, turns a single objection into a rewrite brief, and stores the verdict on the story so you can see why a piece passed.
- Three layers of safety that fail towards the next layer down rather than blocking everything: keyword filters on input and output, OpenAI's moderation endpoint, then the panel. The scope is violence and inappropriate content for children, not a story where someone climbs a tree.
- Covers and interior scenes come from Gemini's image model, with the cover fed back in as a style reference so the same child looks like the same child on every page. Illustrated stories cost two allowance units; if the art doesn't arrive, the surcharge is refunded automatically.
- Narration is ElevenLabs multilingual v2 with voice settings tuned per content type (steadier for meditations, warmer for stories), split at sentence boundaries and synthesised three chunks at a time. FFmpeg loops an AI-generated ambient track under the voice in a single pass and fades it out with the last paragraph.
- Nothing waits that doesn't have to. The cover paints while the panel reads, and narration and interior scenes run side by side, so a ten-minute story is ready in about two minutes.
- The unglamorous half: allowance-based plans, trials and coupons, failed-payment states, admin tooling, and a Christian content profile that keeps faith references in and occult elements out.
