Pages légales
Templates RGPD-compliant pour /legal/terms et /legal/privacy — à adapter avant production avec un juriste.
⚠️ Ce sont des templates — pas un avis juridique. Consulte un juriste avant la mise en production, en particulier pour les cas spéciaux (B2B, données sensibles, mineurs, transferts hors UE…).
Pages livrées
/legal/terms— Conditions générales d'utilisation (CGU)/legal/privacy— Politique de confidentialité (RGPD)
Layout dédié : app/[locale]/(public)/legal/layout.tsx qui applique
les classes Tailwind prose pour un rendu typographique soigné.
Source
Les pages lisent getCachedSiteConfig() pour interpoler appName,
appUrl, supportEmail automatiquement → pas besoin de chercher/remplacer
quand tu renommes ton app.
lastUpdated est en dur dans chaque page — pense à le bumper quand tu
modifies le contenu (et notifier les users par mail si changement
substantiel, c'est une obligation RGPD).
Liens
Le <Footer> (composants/layout/footer.tsx) pointe déjà vers ces deux
pages dans la colonne Legal. Pas de changement à faire.
Au signup, tu peux ajouter une checkbox "J'accepte les CGU et la politique de confidentialité" — pas inclus par défaut mais recommandé en B2C.
Sous-traitants à mettre à jour
La privacy policy liste les sous-traitants par défaut du boilerplate (Vercel, Neon, Stripe, Resend, OneSignal, R2, PostHog). Si tu en ajoutes ou retires, mets à jour la liste — c'est une obligation RGPD (art. 28).
Cookie consent
La bannière de consentement (components/shared/cookie-banner.tsx)
gère le opt-in PostHog. Voir aussi : la privacy policy l'explique
dans la section Cookies.
Pour ajouter un autre tracker conditionnel à l'opt-in :
- Dans
cookie-banner.tsx → loadPostHog(), ajoute le chargement de ton tracker (Plausible, Google Analytics…) dans la même fonction - Update la privacy policy section "Sous-traitants" + "Cookies"
Localisation
Les pages sont en français uniquement par défaut. Pour les rendre bilingues :
- Move le texte vers
messages/{fr,en}.jsonsouslegal.terms/legal.privacy - Use
useTranslationsougetTranslationsdans les pages - Garde le
lastUpdatedsynchronisé entre les deux versions
Allez plus loin
- Cookie banner / consentement — pas de doc dédiée mais
voir
components/shared/cookie-banner.tsx - RGPD export user — l'export JSON couvre l'art. 15 + 20