Je code un boilerplate React Typescript Supabase spécial Temps-Réel

Je vous offre ce boilerplate ViteJS Typescript React Supabase (Postgres) pour coder vos projets beaucoup plus rapidement.

placeholder
DIY21-05-2025

Si comme moi vous vous êtes déjà retrouvé à lancer un npx create-react-app ou npm create vite@latest juste pour passer l’heure suivante à installer React Router, Tailwind, un système d’auth, React Query et tous les trucs de base… cet article est pour vous.

À force de refaire toujours les mêmes setups, j’ai fini par me créer un vrai boilerplate que je peux cloner et lancer en 2 minutes pour démarrer un projet.

Et aujourd’hui, je le partage avec vous.

Ce starter est basé sur :

  • Vite (rapide, fluide, efficace)
  • React + TypeScript
  • Supabase (base Postgres, auth et temps réel)
  • Tailwind, React Query, React Hook Form, React Router DOM

🔗 Lien vers le repo GitHub

C’est le genre de base que je clone quand je veux prototyper une idée, monter un dashboard ou builder un outil interne sans me taper tout le setup initial.

Il est déjà structuré, il gère les routes privées, les notifications, les hooks custom, et même le temps réel via Supabase. Le tout avec une simple app de type to-do pour vous montrer les concepts en place.


Ce que le projet inclut

Voici ce que vous trouverez directement dans le repo :

  • Authentification via Supabase (email/password)
  • Ecoute d'événements temps réel à la base PostgreSQL (insert/delete)
  • Routes protégées avec redirection automatique
  • Hooks réutilisables pour centraliser les requêtes
  • Script SQL pour créer la table task en un clic, les policies

Tout ça pour faire une petite app de to-do pour tester les features rapidement.

La stack est très moderne et efficace :

  • Tailwind pour le style,
  • Toastify pour les notifs,
  • React Router DOM pour naviguer entre les pages (login, dashboard, etc.).

C’est une structure pensée pour rester rapide tout en étant scalable.


Le temps réel avec Supabase

Le vrai plus, c’est la gestion du temps réel.

Allez dans le dashboard Supabase, et activez le “Realtime” sur la table task et c’est tout.

Ensuite, côté frontend, j’ai branché des subscriptions dans le hook de récupération des tâches.

Dès qu’un élément est inséré ou supprimé dans la table, on met à jour le cache de React Query pour refléter le changement directement dans l’UI.

J’aurais pu faire une simple invalidation du cache, mais là j’ai préféré montrer comment modifier directement le cache avec le client React Query. C’est utile si vous voulez gérer des animations, ou du traitement en cascade.


Structure du projet

Quelques choix techniques qui font gagner du temps sur le long terme :

  • Hooks : toutes les requêtes sont centralisées dans des hooks. Jamais de logique directement dans les pages. C’est plus maintenable et plus DRY.

  • Context : j’utilise un AuthContext pour stocker l’utilisateur connecté, et faire le lien avec les routes privées.

  • Routing : classique, avec trois routes principales : /, /login, /dashboard. Une ProtectedRoute empêche d’accéder au dashboard sans être connecté.

  • Base de données : un simple copier-coller du script SQL fourni dans le README suffit à créer la table task.

  • .env : à renseigner avec l’URL et la clé anonyme de Supabase. Aucune logique serveur ici, tout est en pur SPA.


À quoi ça sert (et à quoi ça ne sert pas)

Ce boilerplate n’est pas fait pour le SEO. Il n’y a pas de rendu serveur, donc inutile pour des sites vitrines ou des landing pages publiques. Par contre, il est parfait pour :

  • des dashboards
  • des outils internes
  • des MVPs en mode full client
  • des apps où l’utilisateur est connecté

Typiquement : une app de caisse, un CRM, un backoffice… tout ce qui nécessite une structure solide avec des données temps réel, mais pas besoin d’être crawlé par Google.

Si vous voulez gérer votre SEO, rien ne vous empêche de brancher un blog ou une landing en parallèle, en Next.js ou autre.


Mot de la fin

C’est une structure que je réutilise tout le temps. Elle me fait gagner un temps fou, surtout sur les projets où je sais que je vais devoir aller vite et rester clean côté archi.

Vous pouvez forker, adapter, simplifier ou complexifier selon vos besoins. Vous avez déjà l’auth, le temps réel, la pagination, la structure de code… bref, de quoi construire quelque chose de solide sans vous perdre dans le setup.

🔗 Lien GitHub à nouveau

Si vous voulez que je pousse une version Next.js ou SSR un jour, ça arrive !

Bon dev à vous, et à bientôt pour un nouveau boilerplate.


Restez informé

Abonnez-vous à ma newsletter pour recevoir les derniers articles et mises à jour

Votre vie privée

Nous utilisons des cookies pour améliorer votre expérience sur notre site, analyser notre trafic et personnaliser les publicités. En cliquant sur "Accepter", vous consentez à l'utilisation de tous les cookies. Vous pouvez également choisir de refuser en cliquant sur le bouton "Refuser".