Inspiration
Bedtime with a young child usually means the same three picture books, over and over, until a tired parent runs out of material — right when the child wants a story about their day, not a stranger's. We built Nemuru to close that specific, tiny gap: turn one line about what actually happened today into a short story where the child is the main character.
What it does
A parent types their child's nickname and one line about their day — "fell down at the park," "wore new shoes for the first time" — and Nemuru's AI writes a 400–600 character bedtime story starring that child, then reads it aloud on-device via text-to-speech. No two nights are the same, because the input is never the same.
- One tap from "today's one line" to a finished, narrated story
- On-device read-aloud (TTS), so a parent's hands are free during the actual bedtime routine
- History list to revisit past stories
Nemuru runs a dual revenue model rather than a single subscription wall: a free tier (1 story/day, with a second unlocked by a rewarded ad) and a low-priced Premium tier (¥300/month or ¥2,000/year, 7-day free trial) with unlimited stories, speed control, and no ads. Banner ads only appear on the input and history screens — never during story generation or the read-aloud itself.
How we built it
Flutter (Android) × Firebase (anonymous auth, Firestore, Cloud Functions) × RevenueCat × on-device TTS (flutter_tts). Story generation runs through a Cloud Function calling a Claude model — the API key never ships on-device. We deliberately skipped image generation to keep the build lightweight and ship inside a 3-day window; illustrations are fixed background art per mood rather than AI-generated per story. We also added AdMob's User Messaging Platform (UMP) for EU consent so the app can run ads compliantly worldwide.
Privacy-by-design: we don't store the raw "what happened today" text — only the generated story, title, timestamp, and the child's nickname (never a real full name required). Age is collected as a band (0–2 / 3–4 / 5–6 / 7+ / prefer not to say), never a birthdate.
Challenges we ran into
Balancing the free tier so it's generous enough to feel worth using nightly, but still leaves a clear reason to upgrade. We started at "1 free story/day, full stop" and added the rewarded-ad path for a second story after testing showed that a hard 1-story cap during the free trial created exactly the friction point where a tired parent gives up on the app entirely rather than converts. Separately, shipping in a 3-day window meant deliberately cutting image generation and multi-voice TTS from scope.
Accomplishments that we're proud of
A complete, privacy-conscious bedtime ritual that goes from one typed line to a narrated, personalized story in seconds, with a monetization design (rewarded ads + low-friction subscription) built around the habit loop rather than a single paywall moment.
What we learned
That the free/paid line matters more for emotional moments (bedtime, 9pm, tired parent) than for feature-rich ones — a hard paywall at the wrong moment loses the user permanently rather than converting them.
What's next for Nemuru: AI寝かしつけ絵本
Story continuation ("pick up yesterday's story" for that same child) is our top post-launch priority, alongside multiple child profiles per household and a lighter multi-language TTS pass for read-aloud in a second language.
Category fit: HAMM Award (Help Apps Make Money)
Nemuru deliberately avoids a single subscription wall. The free tier is genuinely usable every night (1 story/day), and a rewarded ad unlocks a second story on the same day — so a non-paying parent still gets the app's core value without ever hitting a hard stop. Premium is priced deliberately low for the same reason — we're optimizing for a large base of habitual nightly users first. This gives us two independent, complementary revenue lines instead of one, and scalability comes from the habit loop itself: a bedtime story is a nightly, recurring need, so the free-to-paid funnel refills every day.
Category fit: Catvertising Award
Ads never appear during story generation or the read-aloud itself — only on the input screen and the history list. The rewarded ad is opt-in and value-exchange based: a parent chooses to watch it to unlock a second story, rather than having an ad forced on them. That keeps the ad strategically aligned with the audience and the revenue model, monetizing exactly the free-tier moment where we'd otherwise get nothing.
Built with
Flutter, Firebase (Auth, Firestore, Cloud Functions), RevenueCat, flutter_tts, AdMob (with UMP), an Anthropic Claude model (haiku)

Log in or sign up for Devpost to join the conversation.