02Ce que j'ai construit

Jaw

Mon application de streaming musical, sans pub. Elle a remplacé Spotify.

Période
2023 à 2024
Rôle
Conception, développement, hébergement
Stack
React NativeIonicAdonisJSMySQLRedisElectron
Visuel du projet Jaw

01Contexte

J'en avais assez des publicités et des interruptions des services de streaming. Jaw est né de cette frustration : une application de streaming musical personnelle, sans pub, avec une bibliothèque et des playlists synchronisées entre le téléphone et l'ordinateur. Elle a très vite remplacé Spotify et Deezer au quotidien.

02Rôle

Projet solo de bout en bout : conception, API, applications mobile et desktop, hébergement. C'est le projet sur lequel j'ai le plus appris sur la chaîne complète d'un produit, du serveur jusqu'à l'icône sur l'écran d'accueil.

03Architecture

L'API est écrite avec AdonisJS. Elle gère les utilisateurs, la bibliothèque, les playlists et le streaming des fichiers audio. Une base MySQL stocke les métadonnées et Redis sert de cache pour les lectures fréquentes et les files d'attente de lecture.

Le client mobile est en React Native avec Ionic et Capacitor, le client desktop en Electron. Les deux partagent la logique de lecture et de synchronisation.

04Apprentissages

Le streaming audio est plein de détails invisibles : reprise de lecture, mise en cache hors ligne, gestion de la batterie. Un cache Redis bien placé change tout sur la réactivité perçue.

C'est aussi là que j'ai compris l'intérêt de partager le code métier entre plusieurs clients plutôt que de le dupliquer.