Jâai rĂ©cemment terminĂ© un projet personnel que je voulais partager : World Radio 60, un site web qui permet dâĂ©couter et de dĂ©couvrir des radios du monde entier, avec une interface simple et intuitive.
Pourquoi ce projet ?
Je voulais crĂ©er une plateforme oĂč lâutilisateur peut :
parcourir les radios par pays et voir le drapeau correspondant ;
filtrer par ville, pays ou nom de radio ;
écouter un flux audio en direct directement depuis le site ;
bĂ©nĂ©ficier dâune navigation fluide et rapide, mĂȘme avec des centaines de radios.
Stack et choix techniques
Pour ce projet, jâai utilisĂ©:
Next.js 13 (App Router) pour le rendu cÎté serveur et la génération de pages dynamiques.
React pour construire une interface réactive et interactive.
TypeScript pour plus de sécurité sur les types et éviter les erreurs courantes.
API interne pour contourner les problÚmes de CORS et récupérer les flux des radios.
Tailwind CSS pour un style moderne, responsive et rapide Ă mettre en place.
Comment ça fonctionne ?
Le site rĂ©cupĂšre les lieux (places) depuis lâAPI Radio.Garden.
Les lieux sont regroupés par pays, avec une limite de villes pour optimiser les performances.
Pour chaque lieu, les channels sont récupérés via un endpoint interne Next.js.
Lâutilisateur peut filtrer les radios par pays ou rechercher une station spĂ©cifique.
Un lecteur audio permet dâĂ©couter le flux en direct.
Optimisations
đ Verrou anti-double fetch pour Ă©viter les requĂȘtes infinies en React Strict Mode.
⥠Lazy loading et limites par pays pour réduire le temps de chargement.
â Gestion des erreurs et fallback pour les flux indisponibles.
Résultat
World Radio 60 est maintenant en ligne et permet de parcourir facilement les radios de tous les continents, tout en offrant une interface simple et rapide.
đ DĂ©couvrez-le ici : https://world-radio-60.vercel.app/

Top comments (0)