Luna is a bedtime-story app for children around two to nine. The problem is not a lack of stories; it is the effort of making a short, personal one when bedtime has already started. A parent supplies people, pets, a genre and a life lesson, and the child becomes the hero of a new story to read aloud. The adult stays in charge of the premise while Luna handles the first draft. That makes the product problem concrete: the app must reduce the adult's planning work without taking away the adult's judgement about what is suitable. A useful session starts with a few prompts and ends with a story that can be enjoyed immediately, rather than a promise of an open-ended content library. It is an in-house product built by Clutch Developer in Barcelona and delivered for iOS and Android.
A parent-led story flow
The flow begins with a small set of choices, not a random catalogue. The parent selects characters, a genre and a life lesson, then Luna generates a unique story in seconds. That creates a clear handoff: an adult provides context, a child gets the imaginative payoff, and the adult reads or listens with them. The app is shaped around the bedtime moment, so the output is a story to finish together rather than a feed to browse. Language is part of that routine too. Luna supports 20+ languages, allowing families to choose a reading language that fits their home instead of treating English as the default. Because the parent chooses the ingredients, the input stays legible even when the generated text is surprising. The child can be invited into the choice without being asked to manage a prompt, account or writing tool. For a bedtime product, that division of responsibility is part of the feature. The result is a short creative session with a beginning, a generated story and a natural next step: reading it aloud.
Personalisation with a boundary
AI generation is useful here only if the result stays suitable for its audience. Guardrails help keep the prose age-appropriate, but they do not replace the adult's role in choosing the premise and deciding what to read. That boundary shapes the whole product: the parent supplies the context, the service creates the story, and the family receives an experience that is meant to be shared. The output also has to work as spoken language, not just as text on a screen, which is why the app includes audio support for stories. Behind that simple flow is a larger delivery scope: a shared Flutter app for iOS and Android, Firebase-backed account and story data, and server-side functions for generation, text-to-speech, subscriptions and daily premium-token handling. The implementation has to keep the fast creative moment understandable even when those services are doing the heavier work. It also has to make plan boundaries and generation limits fit the same family flow: the story should remain the centre of the experience, while account and subscription steps stay in the background until they are needed.
The build
- A parent-controlled input flow for characters, genres and life lessons.
- A unique read-aloud story generated in seconds, with the child as hero and the adult still choosing the premise.
- Age-appropriate guardrails around the generated prose and the shared reading moment.
- Multilingual output in 20+ languages, with audio support for stories.
- Shared Flutter delivery for iOS and Android, backed by Firebase account, story, generation and subscription flows.
What we built
Luna connects a small parent decision to a repeatable night-time routine: choose the ingredients, generate the story, and read or listen with the child at the centre. The delivery challenge is the boundary between personal and suitable. There must be enough control for a parent to shape the story, enough generation to make each session feel new, and enough guardrails to respect a two-to-nine audience without turning bedtime into a settings screen. The result is a focused in-house product whose feature list follows the family moment: guided choices, a quick story, multiple languages, audio support and a shared way to enjoy the result. The engineering scope is meaningful because the visible interaction is short while the account, generation, speech and subscription services behind it must agree on the same story session. Explore Luna, view the Luna product page, or see our AI product development and native app development work.


