Inspiration
My grandmother kept calling me to ask how to send a photo to our family WhatsApp group. I would explain it over the phone, she would get it once, and a week later she would forget. Apps never teach older users, so I built something that teaches it once and stays with her.
What it does
Show Me Once turns one phone screen recording into a guided tour. A helper records a task once; AI picks the real steps, finds what was tapped, and writes simple instructions. The parent opens a link and follows a spotlight on real screenshots of their own app: one step at a time, large text, each step read aloud, and a gentle "Tap the glowing circle" if they tap the wrong place. No accounts; each guide has an unlisted link and can be deleted anytime.
Try a real guide: https://smo-nu.vercel.app → "See an example guide"
How I built it
I planned first with the Devpost Learn skills (scope.md, prd.md and spec.md are in the repo), then built it with Claude Code. Next.js, TypeScript and Tailwind on Vercel; Supabase for the database and private storage; Claude's vision API to read the frames. Frames are extracted in the browser, and the voice uses the browser's built-in speech, so it works on both iPhone and Android with nothing to install.
Challenges
- Guides were coming out with only 4 steps even when the recording had more. I assumed the AI was skipping steps, but the cause was my duplicate-frame filter: it threw away small but real changes, like a highlighted row or a ticked photo, before the AI ever saw them.
- iPhone recordings use a video format some browsers can't read, so I added a screenshot upload as a fallback.
What I learned
- Planning before coding pays off: the spec step caught a security bug where my first database rule would have exposed the secret edit keys.
- A schema guarantees the AI's output has the right shape, not that it's correct. I added meaning checks (valid frames, boxes on screen, short plain instructions) and a retry loop with the exact errors as feedback.
- Check the data before blaming the model.
Built With
- claude
- nextjs
- supabase
- tailwindcss
- typescript
- vercel
