La stack, sans boîte noire
Le template est construit avec des outils courants, que vous pouvez lire, modifier et déployer vous-même. Rien n'est caché derrière un service propriétaire, et vous gardez le contrôle de vos données.
Couche
Ce qui est inclus
Pourquoi ce choix
Application
Next.js 16 (App Router) et React 19
Pages rendues sur le serveur, rapides, un seul langage du client au serveur
Interface
Tailwind CSS 4, formulaires avec react-hook-form et zod
Style cohérent, données validées côté client et côté serveur
Connexion
Better Auth : email et mot de passe, double authentification, Google et GitHub
Comptes sécurisés, confirmation d'adresse obligatoire avant la première connexion, tentatives limitées
Paiement
Stripe (SDK 23) : Checkout, portail client, webhooks signés
Abonnements et achats ponctuels, un seul abonnement actif par personne (les doublons sont annulés et remboursés)
Données
PostgreSQL 17 et Prisma 7
Base relationnelle standard, migrations versionnées dans le dépôt
Emails
Resend : confirmation, bienvenue, réinitialisation, facturation
Envoi fiable, avec une clé limitée à l'envoi
Langues
Anglais et français (next-intl)
Chaque texte est dans un fichier de traduction
Qualité
Vitest (tests unitaires), Playwright (tests de bout en bout), CI GitHub Actions
Lint, tests et build à chaque modification
Déploiement
Docker Compose, avec Dokploy ou Vercel
Une image, une base et les variables : le même déploiement sur votre serveur ou chez un hébergeur
Exploitation
Sauvegarde PostgreSQL chiffrée chaque nuit, copie hors du serveur, alertes par email ou webhook, export des données personnelles
Restaurer vos données, savoir quand une sauvegarde échoue, répondre à une demande d'accès RGPD
Ce que vous gardez entre vos mains. Le code est à vous : vous pouvez le modifier, le déployer où vous voulez, et ajouter vos propres pages et tables. Les données restent sur votre base PostgreSQL.
Ce qui n'est pas inclus
Pour être honnête sur les limites :
- pas de suivi d'erreurs détaillé : les erreurs sont journalisées et signalées, mais pas regroupées ni conservées dans un tableau de bord
- pas de restauration à un instant précis : les sauvegardes sont quotidiennes, donc jusqu'à un jour de données peut être perdu en cas de panne
- pas d'équipes ni d'organisations : un compte appartient à une seule personne
- un remboursement d'abonnement ne retire pas l'accès : il faut annuler l'abonnement