Étape 1 : commencer par un contrat typé
Avant de choisir entre Vite et Next.js, définissez la fonctionnalité comme un contrat typé. Pour un MVP, cela garde l’app cohérente : UI, validation, API, base de données et analytics parlent le même langage. Ici, on modélise une demande projet pour un portail client ou un onboarding SaaS.
Étape 2 : construire la version Vite avec les form actions React 19
Avec Vite, gardez le client léger et envoyez les mutations vers un petit endpoint API. React 19 permet de modéliser l’envoi du formulaire avec `useActionState`, ce qui garde le composant lisible tout en donnant un feedback immédiat à l’utilisateur.
Étape 3 : utiliser un petit route handler comme frontière de mutation
Que l’app tourne sur un worker Vite, Express, Hono ou une fonction serverless, la frontière de mutation doit rester simple : valider, autoriser, écrire, notifier, retourner une réponse typée. L’UI ne doit jamais décider seule si une donnée métier est fiable.
Étape 4 : traduire la même fonctionnalité en Server Action Next.js
Dans le App Router de Next.js, la même fonctionnalité peut être rapprochée du serveur avec une Server Action. C’est excellent quand la mutation appartient au workflow d’une page et que vous voulez moins de glue API côté client.