DOC
Accueil/ Projets/ Gestion RH/ ADR-0001 - Stack React + Vite + Supabase + Netlify

ADR-0001 - Stack React + Vite + Supabase + Netlify

  • Statut : ✅ Accepté (état de fait)
  • Date : 2026-07-10 (constat)
  • Décideurs : équipe projet (implicite)
  • Tags : architecture, plateforme

Contexte

L'application doit gérer les RH d'un réseau multi-boutiques avec un budget et une équipe réduits. Besoin : authentification, base relationnelle, stockage de fichiers (justificatifs, contrats), hébergement web simple, mise à jour rapide.

Décision

Utiliser une architecture « serverless / BaaS » :

  • React 18 + Vite 5 + Tailwind 3 pour un SPA côté client.
  • Supabase comme backend unique (PostgreSQL + Auth + Storage), interrogé directement depuis le navigateur via la clé publique anon.
  • Netlify pour l'hébergement statique (fallback SPA via netlify.toml).

Aucun serveur applicatif intermédiaire (pas de Node/Java/API maison).

Conséquences

Positives

  • Time-to-market très court, coût quasi nul (offres gratuites Supabase/Netlify).
  • Pas d'infrastructure serveur à maintenir.
  • Auth et stockage « clé en main ».

Négatives / compromis

  • Toute la sécurité repose sur la RLS PostgreSQL : si elle est mal configurée, la clé publique donne accès à la base (cf. ADR-0003).
  • Pas d'endroit « de confiance » pour exécuter de la logique sensible (calcul de paie, envoi d'emails, intégrations) → aujourd'hui tout est côté client.
  • Couplage fort au fournisseur Supabase.

Risques & dette induite

  • Sans Edge Functions/serveur, les besoins futurs (notifications email, export signé, webhooks comptables) nécessiteront d'ajouter une brique serverless.

Alternatives envisagées

Option Avantages Inconvénients Retenue ?
Backend Node/Java + Postgres Logique sensible côté serveur Coût, ops, délai
Firebase BaaS mûr NoSQL moins adapté au relationnel RH
Supabase (BaaS Postgres) Relationnel + auth + storage Sécurité = RLS

Références

  • gestionrh-github/package.json, vite.config.js, netlify.toml
  • src/supabaseClient.js
  • Évolution possible : Edge Functions Supabase pour la logique de confiance.