Streaming musical web & Android · 2026
Wavelet
Wavelet est un serveur de streaming musical et ses deux clients. Le serveur Next.js 16, entièrement sur Vercel, cherche dans le catalogue Deezer, diffuse les titres en flux progressif dès le premier octet puis les garde sur Cloudflare R2 pour les lectures suivantes. Le client web (palette ⌘K, paroles synchronisées, lecture gapless) et l'application Flutter Material 3 (préchargement, téléchargements hors ligne, notification média) partagent la même API, décrite en OpenAPI.
~130 ms
Titre suivant
2
Clients, une API
v1.5
Hors ligne
Points clés
- 01Moteur de streaming sur Vercel Functions : flux progressif avec requêtes Range, mis en tampon sur disque et partagé entre lectures simultanées, puis copié sur Cloudflare R2 et servi par URL présignée.
- 02Client web : recherche et téléchargements dans une palette ⌘K, paroles synchronisées, lecture gapless (Media Source Extensions, à l'échantillon près), partage public de titres avec image OG.
- 03Application Flutter Material 3 Expressive (Riverpod 3, just_audio, audio_service) : même file d'attente que le web, préchargement des titres suivants (lecture en ~130 ms au lieu de ~1,4 s), Wi-Fi uniquement par défaut.
- 04Mode hors ligne (v1.5) : albums et playlists téléchargés avec reprise par Range, contrôle d'intégrité SHA-256, session gardée dans le trousseau de la plateforme (Keystore, Keychain, DPAPI).
- 05Import de playlists Spotify jusqu'à 1 000 titres, secrets chiffrés en AES-256-GCM, seuils de couverture Vitest en CI GitHub Actions et tests e2e navigateur des parcours critiques.
Technologies
- Next.js 16
- React 19
- TypeScript
- Zustand
- Prisma
- PostgreSQL
- Cloudflare R2
- Better Auth
- Flutter
- Riverpod
- Vitest
- Vercel
Galerie



Projet suivant
Chantastik