Inspiration
Last week, my five-year-old came home and said, "Mama, girls can't be scientists." She's five — and already being told what she can't be.
By age 6, research shows girls rate themselves as less talented than boys (Bian et al., 2017). Not because it's true — because that's what they've been told. And when your child looks up at you waiting for an answer, "that's not true" doesn't feel like enough.
I built EqualTales because every child deserves a better answer — not a lecture, but a story.
# What it does
EqualTales turns stereotypes into personalized, illustrated bedtime stories. A mother types what her child said (e.g., "Girls can't do math"), enters her child's name and age, and receives a 5-page watercolor-illustrated storybook featuring a real woman who proved that stereotype wrong.
The fictional protagonist — named after the child — discovers Marie Curie, Katherine Johnson, or Junko Tabei through a magical narrative arc: Belief → Question → Discovery → Inspiration → New Belief.
No signup. No login. Just stories that change beliefs.
# How we built it
- 5 MCP Tools via FastMCP for Goose integration:
- classify_stereotype — Claude Sonnet 4.5 categorizes the input
- match_real_woman — Local knowledge base of 50 verified women
- generate_story — Claude Opus 4.6 writes age-appropriate narratives
- verify_story — QA loop catches stereotype reinforcement
- generate_illustration — DALL-E 3 creates watercolor illustrations
- Frontend: React 18 with SSE streaming, page-turn animations, typewriter text effects
- Backend: Flask with parallel illustration generation (ThreadPoolExecutor)
- Deployment: Vercel (frontend) + Render (backend)
# Challenges we ran into
- AI amplifies stereotypes: Research shows AI-generated stories increase appearance-focused descriptions for girls by 55% (EMNLP 2025). We built a QA verification loop that checks every story before display.
- Character consistency: DALL-E generates different-looking children across 5 pages. We solved this with detailed character description templates injected into every prompt.
- 75-second generation time: We parallelized QA + 5 illustrations using ThreadPoolExecutor, cutting total time from 150s to ~75s.
- Goose integration vs. production reliability: We built a full MCP server that Goose can orchestrate, but use direct tool imports in production for demo stability.
# Accomplishments that we're proud of
- 10 pre-cached stories load instantly for judges
- 50 verified women across 14 stereotype categories
- QA loop ensures stories don't reinforce the stereotypes they counter
- WCAG AA accessible — keyboard navigation, ARIA labels, 4.5:1 contrast
# What we learned
- MCP protocol design and Goose integration patterns
- SSE streaming for real-time progress updates
- The importance of QA loops when using generative AI for sensitive content
- How to balance creative AI quality vs. generation time
# What's next for EqualTales
- Multi-language support
- PDF export for printing
- More women in the knowledge base
- Parent dashboard for saved stories
Log in or sign up for Devpost to join the conversation.