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)