Song transliteration learning app - follow each line of a song and learn to read/pronounce it.
Tech stack decided. Ralph will execute PRD.md stories.
This project uses Ralph for autonomous task execution.
ralph [N] # Run N iterations on PRD.md
ralph-init # Create PRD template
ralph-archive # Archive completed stories
ralph-status # Show PRD statusπ STOP. Do NOT implement. Do NOT spawn subagents.
The /prd command creates PRD.md and progress.txt, then YOU (Claude) must STOP and tell the user: "PRD ready. Run Ralph to execute."
NEVER commit or push unless explicitly told. ALWAYS ask which branch before committing.
git status # Check current branch FIRST
# Then ASK: "Should I commit to <branch-name>?"songscript/
βββ CLAUDE.md β This file
βββ README.md β Project description
βββ PRD.md β Ralph task list
βββ progress.txt β Ralph progress
βββ app/
β βββ components/ β React components
β β βββ YouTubePlayer.tsx
β β βββ LyricsDisplay.tsx
β βββ routes/ β TanStack file-based routes
β β βββ index.tsx
β β βββ login.tsx
β β βββ song.$songId.tsx
β βββ styles/
β βββ globals.css
βββ convex/
β βββ schema.ts β Database schema
β βββ songs.ts β Queries/mutations
β βββ seed.ts β Seed data
β βββ auth.ts β Auth config
βββ package.json
βββ vite.config.ts
βββ tailwind.config.ts
Song transliteration learning:
- Display song lyrics line by line
- Show transliteration (phonetic spelling in user's alphabet)
- User follows along, learns pronunciation
- Possibly: audio sync, progress tracking, spaced repetition
Target languages: TBD (Hebrew songs? K-pop? Arabic? All?)
- Framework: TanStack Start (with Bun runtime)
- Database: Convex (real-time sync)
- Auth: Convex + Better Auth (admin-only for v1)
- Styling: Tailwind CSS + ShadCN UI
- State: @convex-dev/react-query + TanStack Query
- Testing: Vitest + Playwright
References:
Every response MUST end with: CLAUDE_COUNTER: N
- Start at 10, decrement by 1 each response
- When 0: re-read CLAUDE.md, reset to 10