How christophemi/eatsound works
EatSound is a cooking-and-music web app: users enter a dish, recipe steps and durations, choose a mood and meal-time option, then use a recipe checklist alongside mood-matched music. The sampled source shows the playlist page decoding recipe data from the URL and composing the player, track selection and wake-lock behavior. The README is only the default Next.js template and documents no further product capabilities; some page logic is excerpted, so navigation wiring is not inferred.
Main entry points: PlaylistContent.tsx Playlist experience · page.tsx Recipe form · MusicPlayer.tsx Music player · useWakeLock.ts Screen wake lock
Components 12
Recipe setup
- Recipe form
src/app/page.tsx - Recipe types
src/lib/types.ts
Playlist experience
- Playlist route
src/app/playlist/page.tsx - Playlist experience
src/app/playlist/PlaylistContent.tsx - Music player
src/components/MusicPlayer.tsx - Screen wake lock
src/hooks/useWakeLock.ts
Mood and track data
- Mood catalog
src/lib/data.ts - Curated tracks
src/lib/tracks.ts
Other components
- Cook
- YouTube player API
- Browser screen API
- App layout
src/app/layout.tsx
Connections 12
- Cook → Recipe form: enters recipe
- Recipe form → Mood catalog: reads moods
- Recipe form → Recipe types: uses recipe types
- Playlist route → Playlist experience: renders
- Playlist experience → Mood catalog: looks up mood
- Playlist experience → Curated tracks: gets mood tracks
- Playlist experience → Music player: renders player
- Playlist experience → Screen wake lock: requests wake lock
- Playlist experience → Recipe types: uses recipe types
- Music player → YouTube player API: controls playback
- Screen wake lock → Browser screen API: requests screen lock
- App layout → Cook: serves app shell