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

  1. 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.
  2. Character consistency: DALL-E generates different-looking children across 5 pages. We solved this with detailed character description templates injected into every prompt.
  3. 75-second generation time: We parallelized QA + 5 illustrations using ThreadPoolExecutor, cutting total time from 150s to ~75s.
  4. 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

Built With

Share this project:

Updates