Inspiration

Every family has stories worth passing down — but a tale that moves a grandparent puts a 7-year-old to sleep. We wanted to fix that. One story should be able to reach every generation.

What it does

EchoWise takes any story — a memory, a letter, a book passage — and adapts it for any audience age (5–80). It rewrites the vocabulary, tone, and structure to match that age group while preserving the emotional core. Then it narrates it back using an age-matched ElevenLabs voice.

How we built it

  • Next.js (App Router) for the full-stack framework
  • Groq (Llama 3.3 70B) for a two-step AI pipeline: first extract the emotional core, then rewrite for the target age
  • ElevenLabs (eleven_multilingual_v2) for age-matched narration
  • pdf-parse for uploading story PDFs
  • GSAP for polished UI animations
  • localStorage for story history and saved entries

Challenges we ran into

  • pdf-parse v2 switched to ESM, breaking Next.js bundling — fixed with serverExternalPackages and createRequire
  • Getting Groq to preserve emotional nuance while drastically changing reading level required careful two-step prompting
  • GSAP entrance animations conflicting with React re-renders on interactive elements

Accomplishments that we're proud of

The two-step Groq pipeline genuinely works — the same story about loss reads like a fairy tale for a 6-year-old and like literary fiction for a 45-year-old, while the emotional truth stays identical.

What we learned

Age-adaptive writing is less about vocabulary and more about what you choose to explain — children need concrete metaphors, seniors need space for reflection. Teaching that to an LLM through prompt design was the core challenge.

What's next for EchoWise

  • Side-by-side comparison view (original vs adapted)
  • Voice cloning so families can narrate in a loved one's actual voice
  • Export to audiobook / shareable link
  • Multi-generational batch: adapt one story for all ages at once

Built With

Share this project:

Updates