< Frontend / Vite / Supabase / GitHub Pages />█
Plateforme communautaire dédiée à l'univers retrowave & synthwave — radio live, galerie visuelle générée par IA, soumission de playlists et espace événementiel, entièrement statique.
Une communauté dispersée sur Discord, YouTube et Reddit — un espace centralisé pour la réunir.
La communauté retrowave existe principalement sur Discord, Reddit et YouTube, sans espace centralisé réunissant musique, visuels et actualités. Sunwave Hub est pensé comme ce point de convergence : une expérience immersive à forte identité visuelle.
L'objectif était de créer un site entièrement statique (zéro serveur à maintenir), avec une base de données légère via Supabase et un pipeline de génération de contenu automatisé par IA. Déployé automatiquement à chaque push sur main via GitHub Actions.
Tous les besoins dynamiques — soumissions de playlists, lecture des données — transitent par l'API REST Supabase directement côté client, sans aucun backend custom.
Cliquez sur une capture pour l'agrandir.
sunwave pour l'isolation.main vers GitHub Pages, et cron hebdomadaire pour la génération de la galerie IA. Variables Supabase injectées depuis les GitHub Secrets.Une stack statique-first, chaque outil choisi pour sa légèreté et sa compatibilité GitHub Pages.
VITE_) pour Supabase, sortie statique dans /dist.sunwave. Client JS direct depuis le navigateur. Anon key + RLS pour sécuriser les écritures.getVideoData()./public/images/gallery/ et redéploie automatiquement.main → GitHub Pages. Génération galerie sur cron hebdomadaire. Secrets injectés à la volée.Les contraintes d'un site statique face à des besoins dynamiques — et comment elles ont été surmontées.
onStateChange (état PLAYING) puis getVideoData().title pour mettre à jour le marquee. Interval de fallback si l'événement est retardé.sunwave distinct du schéma public. Les requêtes JS ciblent explicitement ce schéma — aucune interférence possible.