Riscrivere un backoffice live senza fermare il business
Il backoffice web di una grande cooperativa retail italiana (Conad Nord Ovest) girava su Create React App, React 16, MUI v4 e JavaScript non tipizzato — difficile da evolvere, ancora più difficile trovarci sviluppatori. Per un anno ho gestito questo prodotto da solo — decisioni di ingegneria e di prodotto — al servizio di 650 punti vendita e ~300k€/anno di fatturato da solo.
Problema
Il prodotto richiedeva feature nuove ogni settimana. Un rewrite big-bang avrebbe congelato la delivery per mesi; restare sullo stack legacy rendeva ogni feature più lenta e rischiosa.
Impatto
- Una codebase tipizzata e testabile su cui il team può davvero assumere.
- Le nuove schermate di listing passano da giorni a ore grazie alla DataTable generica e alle convenzioni di routing.
- Zero downtime in produzione durante la migrazione.
- Prodotto e delivery gestiti da solo per un anno: roadmap, priorità e release per 650 punti vendita — un prodotto che da solo vale ~300k€/anno.
Approccio
- Ricostruita l’applicazione su TanStack Start, React 19, TanStack Router/Query/Table/Form, Zod, shadcn/ui e Tailwind v4 — routing file-based, loader query con Suspense, search params come unica fonte di verità per paginazione, ordinamento e filtri.
- Progettata una DataTable generica server-side e un design system brandizzato: le nuove schermate CRUD diventano configurazione, non codice.
- App legacy mantenuta in produzione durante la transizione; lo stesso backend Spring Boot serve entrambe, quindi il cutover è per schermata, non per prodotto.