This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
My sister is also my best friend. Back when we were both in college and working, we'd get home exhausted and spend hours on the phone, complaining about everything that went wrong that day.
Then she got married and had a BABYYYYY.
Now, most nights, she falls asleep while tucking the baby in. I don't blame her at all, but I'll be honest: I miss those calls.
So when this challenge said "build for a friend," I knew who it was for. That's how DreamTales happened.
You tell it a few things about your child: their name, age, favourite animal and character, where the story should take place, the mood, and how long you want it. Out comes a bedtime story made just for them. You can pick the language, and you can change the details to get a different story every night. And on the nights you're too tired to read it yourself, an ElevenLabs voice does it for you.
Parents shouldn't have to invent a brand-new story every single night. And maybe a little story can help us stay connected on the nights we can't talk.
Demo
Live Demo :
Code
GitHub repo:
🌙 DreamTales
DreamTales is a personalized AI bedtime-story companion that creates gentle, imaginative stories based on a child's preferences.
✨ Features
- Personalized bedtime stories
- Custom child name, favorite animal, character, setting, mood, and story length
- AI-generated stories
- Optional AI voice narration
- Simple, child-friendly interface
🧠 How It Works
- The user provides the child's story preferences.
- DreamTales creates a personalized prompt.
- Gemma generates the bedtime story.
- ElevenLabs converts the story into natural-sounding narration.
- Render hosts the application.
🛠️ Tech Stack
- Gemma — Story generation
- ElevenLabs — Voice narration
- Render — Deployment
🚀 Run Locally
git clone <your-repository-url>
cd DreamTales
pip install -r requirements.txt
How I Built It
DreamTales runs on Gemma, which writes each story from the child's details and whatever the parent picks.
I didn't want to just hand the model a blank text box. The app asks only for the details that matter and turns them into a careful prompt behind the scenes. That prompt keeps the child and their companions as separate characters with the same names all the way through, writes the entire story in the chosen language, keeps everything gentle with no scary scenes, and ends with a short four-line rhyme so the story finishes on a calm note.
For the voice, I added ElevenLabs, so the story can be listened to in different voices. After a long day, a parent shouldn't have to read one more thing out loud.
It's a Streamlit app hosted on Render. I wanted my sister to be able to open a link and use it, with nothing to install.
Most of my effort went into keeping it simple. A tired parent doesn't need to know anything about prompts or AI settings. Fill in a few boxes, choose the kind of story, and that's it.
Why Does Open Innovation Matter?
I started out with a small Gemma model, but none of the providers I had access to were hosting it. Since Gemma is open-weight, I could switch to a bigger Gemma model on a different provider without redesigning the app or rewriting my prompts.
That freedom matters here. With a children's story app, the hard part isn't getting text out of a model. It's controlling the characters, the tone and what's safe for a kid to hear. An open model let me build around that, instead of bending my idea to fit one company's API.
Prize Categories
Gemma: Gemma powers the personalized bedtime-story generation, turning a few details about a child into an original story designed specifically for their bedtime experience.
ElevenLabs: ElevenLabs brings the generated stories to life through AI narration and different voices, giving parents the option to listen to the story instead of narrating it themselves.
Render: Render hosts the live DreamTales app.




Top comments (0)