No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Recreating the magic of library cassette-tape books for the digital age. Still images + synchronized narration + a music bed + timing controls. Not video.
StorySyncHQ is two things:
.storysync container (a ZIP with manifest.json + assets/)
plus one load-bearing rule: published narration is always AAC/M4A, so a tape recorded
on an Android phone plays on an iPhone and vice versa. Spec: docs/format-spec.md.
Schemas: public/protocol/.Live: https://storysynchq.vercel.app
| Route | What it is |
|---|---|
/ | Landing — the cassette-into-deck hero, then two doors: play a story or make one |
/read | The reader — open a share code, a .storysync file, or the demo tape; "Tap to Begin" unlocks audio on iOS |
/studio | The Digital Studio — photograph drawings, record a voice per page, pick a mood, publish behind a parental gate |
/protocol | The SSYNC page — packet diagram, codec rule, container layout, downloadable demo container |
/classic | The previous single-file app, preserved |
Next.js 16 · React 19 · TypeScript (strict) · Tailwind 4 · Web Audio (dual-bus engine with a
generative music bed) · MediaRecorder with negotiated mime · WebCodecs + mp4-muxer for AAC at
publish (WAV fallback) · fflate for the container · Supabase with a localStorage fallback ·
Playwright. No trackers, no analytics, anywhere — see PRIVACY.md.
npm install
npm run dev # http://localhost:3000
npm run build # must pass before merge
npm run lint
npx playwright test # desktop + mobile projects; starts the dev server itself
The Playwright suite is the merge gate: legacy suites for /classic, builder gates
(tests/wp-*.spec.ts), blind-critic gates (tests/critic-*.spec.ts), the Fable pass, and a
Node-side pack → unpack round-trip for the container.
CLAUDE.md — the agent briefing: architecture, locked decisions, conventionsARCHITECTURE_REVIEW.md — why each stack decision was madedocs/design-direction.md — the two-register design languagedocs/10x-plan.md — the reassessment, gaps, and falsifiable barsagent_docs/decisions.md — append-only decision logPRIVACY.md — the COPPA posture (a child's voice is personal information)A kid at the library with a book and a cassette: the narrator, the page-turn chime, the melody behind the story. Every decision here serves that kind of undivided attention.