Aller au contenu principal
Tous les projets
Projet personnelCommunication · Temps réel

Cyclone

Une plateforme communautaire full-stack qui réunit salons, messages privés, appels audio et vidéo, présence et partage d’écran dans une expérience responsive.

Aperçu de Cyclone
Cadre
Projet personnel indépendant, conçu comme une démonstration full-stack publique. Le dépôt et l’application sont consultables en ligne.
Mon rôle et ma contribution
Conception produit, interface et développement full-stackJ’ai cadré le produit, modélisé les rôles et permissions, réalisé l’interface responsive et intégré les API, la donnée temps réel et les communications audio-vidéo.
Stack principale
Next.jsTypeScriptClerkSupabaseLiveKit

Étude de cas

Du contexte aux choix de conception

01

Contexte

Cyclone part d’un problème simple à formuler mais difficile à exécuter : réunir la conversation textuelle et les échanges audio-vidéo dans un même produit, sans perdre la cohérence des permissions ni de la navigation. Il ne s’agit pas d’une commande client ni d’un produit affilié à Discord.

02

Enjeu et contraintes

Synchroniser messages, présence et médias en temps réel tout en séparant clairement l’identité, les données applicatives et le transport audio-vidéo.

03

Approche

J’ai confié chaque responsabilité au service le plus adapté : Clerk pour l’identité, Next.js pour les API et les contrôles d’accès, Supabase pour les données et les événements privés, puis LiveKit pour les médias avec des jetons courts générés côté serveur.

04

Choix et compromis

Ce découpage évite de faire transiter les médias par Next.js et garde les responsabilités lisibles. En contrepartie, il faut coordonner plusieurs services, leurs secrets, leurs permissions et leurs états de connexion.

05

Résultat observable

La version déployée permet de parcourir le produit et couvre salons textuels et vocaux, conversations privées, webcam, partage d’écran, rôles, modération et navigation responsive. Je ne lui attribue pas de métrique d’usage qui n’a pas été mesurée.

Points clés

Ce que le projet démontre

Temps réel

Un état partagé

Messages, présence et conversations évoluent sans rechargement, avec des canaux privés alignés sur les droits de chaque membre.

Architecture

Des frontières nettes

L’authentification, la donnée et le transport média restent découplés afin de limiter les responsabilités de chaque couche.

Produit

Une expérience complète

Le parcours couvre la création d’un espace, la discussion, la modération et le passage naturel du texte à l’audio ou à la vidéo.

Regard critique

Limites et suite logique

Limite actuelle

Cyclone reste une démonstration : la couverture de tests automatisés doit encore être complétée, la limitation de débit est conservée en mémoire et certains états de présence sont rafraîchis périodiquement.

Prochaine étape

Ajouter des parcours automatisés avec plusieurs comptes et déplacer la limitation de débit vers un stockage partagé avant d’envisager une charge distribuée.