Songs without their own cover use their album's. Covers live in a public
'covers' bucket that only admins can write to.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Flutter app (Android/iOS): home, explore, albums, search, player with
equalizer, mini player, sign up/sign in with email codes, profile,
encrypted offline downloads, About page
- server/: one-command deploy of self-hosted Supabase behind HestiaCP/nginx
(or Caddy), migrations, backups, email templates
- supabase/migrations: schema, row-level security, profiles
- tools/: song scanner and importer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>