StoryTime

Redesigning StoryTime to feel more natural, quieter, and adaptive

StoryTime helps young kids and caregivers make up stories together. It gives caregivers a little support when they need it, records the story, and turns that story into a keepsake they can share or come back to later.

The first MVP proved there was something meaningful in the idea: a lightweight tool that could make storytelling easier, more playful, and less dependent on a caregiver having the perfect idea ready. But using it in real moments showed me the product needed to feel more flexible, less performative, and more responsive to how young kids actually tell stories.

This iteration focused on making StoryTime feel more natural in the moment: a looser story flow, a quieter interface, a stronger prompt system, more thoughtful AI support, and a keepsake that reflects the story the child actually told.

My role

Product designer and builder

What I owned

Product strategy, UX/UI, prompt design and logic, AI interactions and guardrails, research and building with Cursor

Tools

Figma, Cursor, Supabase, Whisper transcription, OpenAI

From fixed story stages to child-led storytelling

The first MVP moved every story through:
Character → Place → Problem → Action → Ending

That structure helped me get the first version working, but once I started testing it, the mismatch became obvious.

Toddlers and young children rarely tell stories in a linear way. They repeat the same idea over and over, jumping from one detail to another. They introduce a new character or plot point out of nowhere, and sometimes the most memorable part of the story is what makes the least narrative sense.

The MVP was trying to manage the story, when it needed to follow the kid.
I removed the idea of fixed story stages entirely.

Instead of deciding when the story should move from setup to problem to ending, StoryTime gives the caregiver simple ways to respond to the child’s idea in the moment. They can stay with what’s working, add a silly plot device, explore a feeling, discover something new, or wrap up when it feels right.

The story has more room to wander, while still allowing caregiver control.
The caregiver has more context than the app does. StoryTime should support the moment, not decide the pace for them.

Making the app fade into the background

The app needed to get quieter

In the MVP, the story name, prompt, recording state, colors, and controls were all competing for attention. And because I eliminated story 'Stages', the UI had to reflect that new framework.

What does the caregiver actually need from the screen?

In the original design, the story name had almost as much visual weight as the prompt. In testing, that made the hierarchy muddy.

Some people read the title first, almost like it was part of the prompt. I pulled the story name back, made the prompt card more prominent, and simplified the surrounding UI. The visual system got quieter too, with fewer competing colors, softer surfaces, and more reliance on type, spacing, and hierarchy.
The app shouldn’t be the star of the moment. It should give the caregiver the next useful nudge, then get out of the way.

Recording needed to feel obvious, not in-your-face

Recording was part of the same problem.

In the MVP, caregivers were asked about recording before entering the story. If they chose to record from the start, recording was active and overly prominent when the story opened.

When testing, some felt it added a sense of pressure to perform perfectly and added to their anxiety.

That lines up with research on self-focused attention: worrying about how you’re coming across can increase anxiety and pull attention away from the interaction itself.

I changed the flow so the caregiver enters the story first, then recording starts when they choose the first prompt. The recording state stays visible, but it doesn’t dominate the screen. Pause is still easy to reach, and the active prompt remains the clearest thing on the page.
Original flow
Updated flow
Recording needed to be obvious enough to trust, but quiet enough that the caregiver could stay focused on the child.
Tradeoff
The original flow gave caregivers a very explicit choice about whether to record.

The new flow removes that decision and makes recording the default once the first prompt starts. That reduces friction and the feeling of performing, without sacrificing transparency.

I kept that control by making it clear upfront that StoryTime records the story, waiting for an intentional prompt selection before recording begins, and keeping the recording state and Pause action visible once it starts.

Rebuilding the prompt system

Some early prompts made sense on paper, but felt awkward out loud.

At first, I thought I'd need to make the prompt library warmer, shorter, and more child-friendly but the more I tested the app, the more I realized the prompt system couldn’t just be a flat library of questions.

It shifted the challenge from:
What's a good prompt? → What prompt should follow?

This became the system model:

First prompts

Give the caregiver an easy way into the story without having to invent something from scratch

Expanders

Stay with the child’s current idea and help build it out instead of constantly moving the story somewhere new

Prompt categories

Let the caregiver steer toward silliness, feelings, discovery, or more detail depending on where the story is going

Age bands

Change the kind of question being asked so prompts match what children at different developmental stages can understand and answer

Context hooks

Pull in safe details from the story so the next prompt feels connected to what the child just said

Repetition, validation, and fallback rules

Prevent redundant or awkward prompts and keep the story moving when speech or context is unclear

Following best practices

The prompt model was informed by a literature review of early-childhood language development, shared reading, social-emotional learning, and responsive caregiver-child interaction.

I used these patterns as a foundation, then adapted them for collaborative storytelling with young children.

Open-ended conversations & "Yes, and" improv

To avoid yes/no answers and build on whatever the child adds

Shared-reading prompts & language expansion

To support prediction, sequencing, description, and help caregivers repeat and build on the child's words

Sensory exploration & SEL and feelings prompts

To invite sounds, smells, colors, textures, movement, and explore what characters notice, feel, want, or need

Silly twists & discovery prompts

To make the story playful and surprising, or give it somewhere new to go when it stalls
The goal wasn’t to make the interaction feel educational. It was to put better scaffolding underneath a playful moment.

I kept asking: would I actually say this to a toddler? If the answer was no, the prompt needed some TLC.

Designing around imperfect toddler speech

A big part of the prompt work was designing around a very real constraint: toddler speech is messy and hard to transcribe.

Speech recognition can miss words, misunderstand pronunciation, or lose the best part of a sentence. That changed how I thought about the caregiver’s role. Encourage caregivers to repeat and expand what a child says.

That kind of expansion is useful for the child, and it gives StoryTime clearer context, improving both the storytelling moment and the quality of the final keepsake.

Giving caregivers clearer prompt controls

Once I removed fixed story stages, I needed a new way to help caregivers guide the story without turning the app into a complicated control panel.

I split the main prompt directions into clearer buttons to give caregivers more control over the next move.

If the child is laughing, they can make it sillier. If the child is focused, they can expand. If the story is stalling, they can discover something new. It also makes the system easier to understand. The caregiver knows what kind of prompt they’re asking for.

Expand idea

Stay with the current idea and add more detail

Silly

Add humor, surprise, exaggeration, or a playful twist

Feelings

Explore how a character feels, what they notice, or why something matters

Discovery

Introduce something new to find, hear, follow, solve, or explore
Credit card mockups

Using AI to make prompts feel more responsive

AI helps select and contextualize approved prompts without freely generating them

A stronger prompt library helped, but didn’t solve what should come next. The system could know the child’s age, character, place, prompt category, and what's already been asked, and still choose something technically fit but felt awkward.

If the child just said the bear found a giant purple sandwich, the next prompt shouldn't be “What does the bear find?”

As a solution, StoryTime starts with a human-written library of approved prompts and AI helps choose the one that best fits the current story, adding a small amount of context from what the child's already said.

Select an approved prompt

What happens next?

Add story context

What happens {to the giant purple sandwich} next?
how prompt selection works
This gives the story more continuity without handing it all over to AI to fully generate.

If AI doesn’t return something usable, StoryTime is designed to fall back to the rule-based prompt system rather than letting a bad response interrupt the story.  

Designing for natural conversation

Getting live speech recognition working was only one part of the problem. The next part was getting it to respond in a way that felt like it actually understood what the child said, while still keeping the live prompt short, grounded, and easy for a caregiver to read out loud.
Example of unnatural, bad prompt behavior
It technically picked up part of the speech, but no caregiver would actually say that. The system dropped the important noun, grabbed the wrong words, and turned the next line into something that sounded broken instead of helpful.

A lot of the iteration became about the small details that make a prompt feel natural:
  • keeping the line short
  • avoiding recaps of what the child already said
  • not grabbing the last few words when they weren’t the real idea
  • keeping modifiers attached to the right noun 
  • filtering out the caregiver reading the prompt card 
  • avoiding invented objects from messy transcripts
  • making sure Expand stayed with the child’s latest contribution instead of resetting back to a generic catalog prompt
what AI can and can't decide
using speech different during and after the story

Rethinking the keepsake

From a template to the story they actually told

The original MVP ended with a Mad Libs-style keepsake. As the child answered prompts, StoryTime pulled those answers into a predefined story. Unfortunately, the keepsake only worked if the conversation followed the story structure I had designed in advance.
original mad libs keepsake
What changed
Instead of filling predefined blanks, the recording became the source of truth.

Free-form story → recording → transcript → generated summary + art

That meant the same character and place could lead to completely different stories, and the keepsake could reflect what the child actually told.
Current Story keepsake
keepsake evolution
Mockup

Making variable stories fit

The dreaded ellipsis. Stories vary in length, and longer ones could get cut off. I added  summary limits and adjusted the layout so the full story could stay readable without shrinking everything around it.
Mockup

Finding the right art style

Early images felt off-brand and more obviously AI-generated. I refined the art direction and generation rules until the illustrations felt softer, more playful, and more like part of StoryTime.
Mockup

Bringing two keepsakes into one

I initially treated the summary and art as separate keepsakes, but that created extra steps to view two things that were inherently connected. Combining them into one artifact made it feel more cohesive and easier to view and share.
Mockup

Refining the composition

The final iterations focused on the art composition itself. I adjusted the framing so characters were not overly zoomed in, important story details stayed visible, and the action buttons no longer cropped or competed with the core scene.

Designing the wait

Generating the summary and illustration takes time, right when the family is expecting something new and exciting. For toddlers especially, the waiting felt painfully, unbearably long.

I started with a common loading pattern: changing messages that explained what StoryTime was doing. That gave caregivers a sense of progress, but  toddlers can't read, so it did very little for them.
early iteration

Overcorrected animation

My first exploration in Cursor to make the wait feel engaging overcorrected by a mile.

Colorful icons moving at random made it feel chaotic.

There was an unnecessary instruction on the intended interaction (toddlers naturally try to touch and move them).

Finally, the fixed background made the screen distracting.
Credit card mockups

Breaking up the wait time

I reworked the animations, and explored a direction to break up some of the wait: loading the summary first, and the art after.

But the lack of an animation when waiting for the art recreated the original pain point: waiting around with limited engagement for the fun thing to load.
Credit card mockups

A happy balance

The final iteration slowed everything down, with icons falling gently across the screen, with optional interactions that add a little silliness if the child wants it.

It continues as a playful interaction while both the summary and artwork load.

The result gives caregivers useful status while giving kids something visual and playful to watch.
Credit card mockups
I also designed for cases where only part of the generation succeeds.

The recording is saved first, so a failed image or summary never means losing the story. If ranking or summary generation fails, StoryTime has a simpler fallback. If the art fails, the completed story is still there and the user can retry, or move on.
Partial success edge cases

Making AI visible and safe

The keepsake gives AI more freedom because it creates new text and imagery, so I added stronger checks around what goes in and what can come back out.

The transcript is always treated as story content, not instructions. A child could naturally say something like “the robot says ignore all the rules,” so summaries are checked for grounding, unsafe content, and instruction-like or personal information before they are shown.

For art, the raw transcript never goes directly to the image model. StoryTime builds the image prompt from validated details like the character, setting, action, and mood, which also helps keep the selected character consistent.
Safety and validation flow
I wanted it to be clear to caregivers when AI was part of the experience. Generated with AI stays visible by default, and I iterated on the keepsake layout to make sure it didn't get pushed below the fold as the story or art changed.
Early iteration → visible Ai disclosure above-the-fold

Revisiting the story

As stories accumulated, I wanted the saved experience to make each one feel distinct and easy to take in again. I refined the library to give stories more visual identity, then reworked the story page so the recording, story itself, and path back to the keepsake were easier to understand at a glance.

The goal was to make returning to a story feel less like navigating saved content and more like picking up the memory again.
Showing more of the story by default
Earlier versions separated the recording, summary, and art into individual destinations, so you had to tap around to remember what the story was about.

I changed the page to show a deconstructed version of the keepsake by default: the illustration and summary are already visible alongside the recording. The hierarchy now makes the story easier to take in at a glance, while still keeping relistening as a primary part of the experience.
early story page → final version

Making the saved story feel warmer

I brought in color tied to the selected place, so a tide pool story feels different from one set in the forest or outer space. I also carried the generated art into the page itself, giving each story a stronger visual identity.
Credit card mockups

Keeping the full keepsake one tap away

The summary and art now live as part of the story page, and a 'Story keepsake' card' opens the finished artifact when someone wants to see or share it as a whole.

That also let the keepsake adapt to context: right after a story it acts as the reveal, while from the library it becomes part of a larger saved-story experience with clearer back navigation and access to the recording.
Credit card mockups

What I'd measure next

As I test more, I’d want to understand whether the redesign makes the experience easier to start, easier to continue, and more meaningful to save.

Story flow
Whether caregivers start stories, use prompts, choose different prompt directions, wrap up, and complete the story.

AI quality
Whether AI-selected prompts pass validation, avoid repetition, feel natural when read out loud, and fall back when the transcript is too thin or the output fails.

Keepsakes
Whether summaries and images generate successfully, whether families replay the audio, and whether they save or share the final keepsake.

Where I'd like to explore

A learning center
A lot of the prompt success depends on how the caregiver talks with the child during the story. I’d like to explore a small, friendly resource area with tips like repeating what your child says, expanding their idea, adding exaggeration, or asking a simple follow-up.


Storytelling modes
I’d also like to explore different modes, like seasonal stories, bedtime stories, silly challenges, or guided scenarios where the caregiver and child move through a small goal together.

As the product grows, the home screen could become a library of storytelling modes instead of one general starting point.