✦The Playground
Changelog
Les évolutions du Playground, jour après jour.
v1.10.04 mars 2026
Invitation membres, Analytics & Google Places
Nouveau
- Invitation par lien : l'Organisateur peut inviter des membres via un lien privé avec token depuis la page de gestion de sa Communauté — génération/révocation du token, page de bienvenue dédiée, email d'invitation envoyé automatiquement à l'inscription
- Catégorie personnalisée : les Communautés de type « Autre » peuvent saisir une catégorie libre (champ customCategory)
- Google Places API : autocomplétion d'adresse alimentée par Google Places (New) en remplacement de l'API BAN — couverture mondiale (plus uniquement France)
- Analytics PostHog : suivi des événements clés (inscription, création Communauté/événement, page vues, sign-up) — reverse proxy EU, désactivé hors production
- Notifications admin : les admins de la plateforme reçoivent un email lors de la création d'une nouvelle Communauté ou d'un événement
- Retirer un membre : l'Organisateur peut retirer un Participant de sa Communauté depuis la liste des membres — bouton ⋮ par ligne, dropdown, AlertDialog de confirmation
- Page Aide : nouvelle page /aide avec FAQ accordion et formulaire de contact protégé contre les bots (honeypot), lien dans le footer
- Broadcast — cooldown 24h : délai de 24h entre deux broadcasts avec indication visuelle sur le bouton grisé (remplace le verrou permanent)
Amélioré
- CTA « Gérer cet événement » : bouton plus visible (variant rose) sur la page publique d'un événement pour l'Organisateur connecté
- Badge « Vous » : affiché après le nom de l'Organisateur sur la page événement publique
- Dashboard : libellé « Vue : » ajouté devant le sélecteur de mode Organisateur/Participant
- Onglet Participant : renommé « Mes inscriptions » (plus précis que « Mes événements »)
- Page Découvrir : titre H1 « Communautés & événements » / « Communities & events »
- Footer : lien vers The Spark (thespark.fr)
Fix
- Performance : N+1 queries sur auth() éliminées via React.cache() — une seule requête DB par render au lieu d'une par composant
- Emails : heure affichée correctement en timezone Europe/Paris (Europe/Paris)
- Localisation événement : l'adresse s'affiche toujours sous le nom de lieu dans le pin « Où »
- Favicon : ICO malformé corrigé, apple-touch-icon déclaré explicitement
- Onboarding : setup profil déclenché systématiquement après chaque sign-in OAuth/email
v1.9.02 mars 2026
Broadcast, Radar amélioré & page Communauté
Nouveau
- Broadcast moment : envoi d'un email groupé à tous les participants d'un événement depuis le dashboard Organisateur — éditeur inline sujet + corps, confirmation avant envoi, feedback succès/erreur
- Quitter la Communauté : bouton disponible sur la page publique d'une Communauté (en plus du dashboard membre)
- Radar — recherche OR par mot-clé : chaque source (Luma, Eventbrite, Meetup) lance un appel API par mot-clé en parallèle et fusionne les résultats avec déduplication par URL — meilleure couverture, plus de résultats
- Radar — 3 mots-clés max : extraction pondérée (titre prioritaire > lieu > description) pour des termes plus précis et distinctifs
- Radar — redesign interface : header avec pills ville + date, barre latérale colorée sur les sections, compteur de résultats en footer
Amélioré
- Radar : source Mobilizon retirée — full-text search trop permissif (faux positifs sur les mots français contenant « ai »)
- Radar : limite quotidienne augmentée de 10 à 25 analyses par utilisateur
- Page publique événement : lien Communauté pointe vers /circles/[slug] (accessible sans authentification) au lieu de /dashboard/circles/[slug]
- Dashboard : dot rose pour les événements organisés dans la timeline Participant
- Timelines Circle : composant MomentTimelineItem unifié entre dashboard et page publique via prop variant
Fix
- Commentaires : suppression du mismatch d'hydratation sur les temps relatifs (date calculée côté client uniquement)
- Page publique Communauté : dot gris pour les événements passés (au lieu de rose)
- Landing : mise à jour des textes des piliers 2 et 3
v1.8.11 mars 2026
Correctifs CSP & stabilité CI
Fix
- CSP : autoriser api-adresse.data.gouv.fr dans connect-src — résout le blocage de l'autocomplétion d'adresse dans le formulaire de création d'événement
- Tests E2E : test d'annulation d'inscription corrigé — stratégie waitForResponse + rechargement page pour éviter les aléas des transitions React 19 en CI
v1.8.028 février 2026
Radar de planification
Nouveau
- Radar de planification : outil IA intégré dans le formulaire de création d'événement
- Rate limiting Radar : 10 analyses par utilisateur par jour (illimité pour les admins)
v1.7.028 février 2026
Support multilingue ES / RO / NL
Nouveau
- Espagnol (ES) : traduction complète de l'interface (576 clés)
- Roumain (RO) : traduction complète de l'interface (576 clés)
- Néerlandais (NL) : traduction complète de l'interface (576 clés)
- Le sélecteur de langue propose désormais 5 langues : FR, EN, ES, RO, NL
Fix
- Hero roumain : texte ajusté — « Organizează evenimente. » et « Animă colectivul. »
- Dashboard roumain : « Panou » remplacé par « Tablou de bord » (4 occurrences)
- Page À propos : mise à jour des types d'événements organisés (produit, agile)
v1.6.028 février 2026
Mode switcher Participant / Organisateur
Nouveau
- Mode switcher dashboard : pill switcher Participant / Organisateur dans « Mon espace »
- Page welcome : choix du mode au premier accès (« Je participe » / « J'organise »)
- Backfill production : migration des utilisateurs existants (22 organisateurs → ORGANIZER, 26 → PARTICIPANT)
Fix
- Auth OAuth Vercel preview : trustHost: true dans la config Auth.js v5 — résout l'erreur « Authentication error » sur les URLs preview dynamiques
- Badge Organisateur : en mode Participant, les événements des Communautés hostées affichent désormais le badge 👑 Organisateur au lieu de « Inscrit »
v1.5.026 février 2026
Notifications & qualité
Nouveau
- Email Organisateur : confirmation à la création d'un événement (avec ICS en pièce jointe)
- Email Organisateur : notification lors d'un nouveau follower de la Communauté
- Email participants : notification d'annulation lors de la suppression d'un événement
- Boutons calendrier : "Ajouter au calendrier" disponible pour l'Organisateur (Google, Apple, ICS)
- Export CSV : export des inscrits depuis la vue Organisateur (colonnes prénom, nom, email, statut, date)
- Commentaires : formulaire activé sur les événements passés (pic d'engagement post-event)
- Page événement : prochains événements du Circle affichés en bas de page (rétention)
- Lien Mon espace : ajouté dans l'email de confirmation d'inscription pour guider les nouveaux membres
Fix
- ICS — date invalide : validation côté formulaire empêchant une date de fin antérieure à la date de début
- ICS — cache : revalidatePath ajouté après create/update/delete — la page publique se rafraîchit immédiatement
- Erreurs email : capturées dans Sentry (permet d'alerter en cas de quota Resend dépassé)
- iOS Chrome : RangeError: Invalid Date sur la création d'événement à minuit — guard ajouté dans combineDateAndTime
- Page d'erreur globale : amélioration du rendu et du message
v1.4.026 février 2026
Performance & Admin enrichi
Amélioré
- Dashboard : streaming Suspense — FCP réduit de ~3.5 s à <0.5 s grâce à loading.tsx + <Suspense> interne
- Audit perf : corrections N+1, transactions atomiques, ISR et parallélisation des requêtes
Nouveau
- Admin — Commentaires : compteur global (stats dashboard) + détail par événement (liste + fiche)
v1.3.026 février 2026
PWA & Notifications événement
Nouveau
- Support Progressive Web App : installable sur iOS (Safari) et Android (Chrome)
- Notifications email aux participants en cas de changement de date, heure ou lieu d'un événement
- Footer : affichage de la version de l'app à côté du copyright
Fix
- ICS : décalage horaire corrigé dans combineDateAndTime (heure locale → UTC)
- Formatage des dates : centralisation via Intl + fuseau Europe/Paris (supprime les erreurs SSR/hydration)
- Sentry : capture des erreurs inattendues côté serveur (unexpected response + hydration)
- Config : bodySizeLimit des Server Actions augmenté à 4 Mo
- i18n : bouton « Publier » sur le formulaire événement (était « Submit »)
v1.2.025 février 2026
Préférences de notifications
Nouveau
- Page Profil : tab Notifications avec 4 toggles opt-out (tout activé par défaut)
- Guards email : les notifications respectent les préférences de chaque destinataire
- Script pnpm db:backfill-notification-prefs — correction des valeurs pour les users existants
v1.1.025 février 2026
Polish & sécurité
Nouveau
- Explorer : pagination "Voir plus" — chargement par batch de 12 Communautés ou événements
- Page Communauté dashboard : section lien partageable pour les Organisateurs (avec copie en un clic)
- Liste des membres et des inscrits : vue verticale 1 par ligne, badge Organisateur avec couronne, "Voir plus" à partir de 10
- Navigation : mise en évidence de la page active dans le header et le menu mobile
- Authentification : icônes Google et GitHub sur les boutons OAuth
- Page À propos : section "Le code" avec lien vers le dépôt GitHub
Fix
- Covers des événements absentes de la timeline publique d'une Communauté
- Hydration error sur les dates du dashboard
- NotFoundError iOS Safari sur les menus déroulants (Select)
- Layout mobile Explorer et Dashboard
- Google Maps : migration vers Embed API v1
Sécurité
- Corrections SAST : SSRF, auth guard, CSP, HSTS
- CSP : autorisation des sous-domaines Vercel Blob et Google Maps
- DAST OWASP ZAP : scan baseline prod + scan full sur les previews PRs
v1.0.024 février 2026
Release majeure
Nouveau
- Dashboard "Mes Communautés" : cartes style Explorer — cover 1:1, catégorie, badge rôle, stats membres/événements, prochain événement, bouton "Créer un événement" pour les Organisateurs
- Type domaine DashboardCircle + usecase getUserDashboardCircles + requête repository unique (sans N+1)
Modifié
- Dashboard "Mes événements" : couverture déplacée à gauche (64px), titre sur 2 lignes, badge aligné à droite
- Explorer : refonte cartes événement — cover 1:1, alignement sur les cartes Communauté, badges Organisateur / Inscrit / Liste d'attente, grille 3 colonnes
- Sélecteur d'image de couverture : corrections mobiles iOS Safari (plein écran, grille 2 colonnes)
Fix
- Optimisations SQL : count côté base + take: 1 sur les moments à venir (suppression du sur-fetching)
v0.10.023 février 2026
À propos & Changelog
Nouveau
- Page À propos — histoire du projet, le problème, la réponse, où on en est
- Page Changelog — timeline des versions, mise à jour automatique à chaque release
- Automatisation des releases (release-please)
v0.9.023 février 2026
Polish & terminologie
Nouveau
- Page de bienvenue pour les nouveaux utilisateurs après onboarding
Modifié
- Terminologie FR simplifiée : Cercle → Communauté, Escale → événement, Mon Playground → Mon espace
- Section d'inscription repensée : bouton S'inscrire + compteur de places sur une même ligne
- Badges de rôle et de statut harmonisés sur toutes les vues
v0.8.021 février 2026
Finition produit
Nouveau
- Upload d'avatar sur le profil (avec protection OAuth)
- Suppression de compte depuis la page profil
- Boutons "Ajouter au calendrier" après inscription (Google Calendar + .ics)
- Position dans la liste d'attente affichée sur la page événement
- Pages légales (mentions légales, confidentialité, CGU)
- SEO & OpenGraph — images dynamiques, sitemap, robots.txt
- Design responsive mobile complet
v0.7.021 février 2026
Emails transactionnels
Nouveau
- Confirmation d'inscription par email
- Email de confirmation liste d'attente
- Email de promotion liste d'attente ("une place s'est libérée !")
- Notification à l'organisateur à chaque nouvelle inscription
- Pièce jointe .ics dans les emails de confirmation
v0.6.021 février 2026
Admin plateforme
Nouveau
- Tableau de bord admin avec statistiques (utilisateurs, communautés, événements, inscriptions)
- Gestion des utilisateurs, communautés et événements (recherche, détail, suppression)
- Possibilité de forcer l'annulation d'un événement
v0.5.021 février 2026
Découverte publique
Nouveau
- Page Découvrir — répertoire public de Communautés et d'événements, filtrable par catégorie
- Pages Communauté publiques, accessibles sans compte
- Page d'accueil avec présentation du produit
v0.4.021 février 2026
Design premium
Modifié
- Dashboard redesigné : timeline unifiée à venir / passés, états vides avec appel à l'action
- Page Communauté redesignée : 2 colonnes, toggle À venir / Passés
- Page Profil redesignée : avatar, stats, métadonnées
- Liste des membres : Organisateurs en premier, emails visibles pour les Organisateurs uniquement
v0.3.021 février 2026
Engagement
Nouveau
- Fil de commentaires sur chaque événement
- Autocomplétion d'adresse (API BAN) dans le formulaire événement
- Événements annulés visibles dans la timeline de la Communauté
v0.2.020 février 2026
Parcours complet
Nouveau
- Inscriptions : s'inscrire, annuler, consulter la liste des participants
- Liste d'attente avec promotion automatique sur désistement
- Rejoindre un événement inscrit automatiquement à la Communauté
- Tableau de bord : "Mes prochains événements" et "Mes Communautés"
- Profil utilisateur et onboarding au premier login
v0.1.019 février 2026
Fondations
Nouveau
- Création et gestion de Communautés et d'événements
- Page événement publique et partageable (/m/[slug])
- Authentification — Magic link + Google + GitHub
- Interface bilingue FR / EN
- Déploiement — Vercel (EU) + PostgreSQL serverless (Neon EU)