React
Next.js vs Vite per un sito marketing: il criterio è l’HTML
Next.js serve quando ogni pagina deve essere HTML prima del JavaScript; Vite quando il sito è una pagina e il build deve restare veloce. Numeri e test da fare.
In sintesi
- Next.js conviene quando ogni pagina deve esistere come HTML prima del JavaScript.
- Al 1 novembre 2026 il tag next.js ha 41.492 domande su Stack Overflow e vite 6.809.
- Vite non è un meta-framework: routing e prerender per rotta vanno aggiunti.
- Dei 1.556 blocchi del catalogo, 1.459 dichiarano «see source» come licenza: va verificata.
Per un sito marketing Next.js conviene quando le pagine devono esistere come HTML prima che il browser esegua JavaScript; Vite conviene quando il sito è una pagina sola con poche rotte e il build deve restare veloce. Il criterio è quante pagine devono essere indicizzabili, non quale framework è più moderno.
Il volume delle domande descrive la complessità che ciascuno strumento porta con sé: al 1 novembre 2026 il tag `next.js` conta 41.492 domande su Stack Overflow e `vite` 6.809, sei volte meno. Il catalogo EneUI conta 1.556 blocchi pronti: 1.459 dichiarano «see source» come licenza e 97 dichiarano MIT.
Cosa deve fare un sito marketing
- Essere indicizzabile: crawler e anteprime social leggono l’HTML, non il risultato dell’idratazione.
- Caricare in fretta: la landing è la pagina con il LCP peggiore, perché porta immagini e font.
- Gestire un form: contatti, demo, newsletter. Serve un endpoint e uno stato di errore.
- Restare economico: poche rotte, deploy frequente, nessun servizio che scala da solo.
Le rotte che decidono
| Tipo di pagina | Next.js | Vite | Nota |
|---|---|---|---|
| Landing | HTML generato | HTML vuoto senza prerender | SEO e anteprima social |
| Pagine legali | Statiche | Statiche | Nessuna differenza |
| Form contatti | Route handler o server action | Endpoint esterno | Dipende dall’hosting |
| Deploy | Runtime Node oppure export statico | File statici | Costo e superficie di attacco |
Dove Next.js paga il conto
Next.js aggiunge un server, una cache e il confine tra server component e client component. Sono tre concetti che il team deve conoscere, e sono la ragione per cui il tag `next.js` ha 41.492 domande: la maggior parte degli errori nasce da quel confine, non dal CSS.
Se il sito è una landing con un form, quel costo non produce nulla. Se invece hai dieci pagine prodotto e un blog, la generazione statica per rotta e la gestione dei metadati si ripagano nella prima settimana.
Dove Vite paga il conto
Vite produce un bundle e un `index.html` con un contenitore vuoto. Il contenuto arriva dopo l’esecuzione del JavaScript, quindi crawler lenti e anteprime social vedono una pagina senza testo. La soluzione è un passo di prerender, che va configurato e mantenuto.
Il test in mezz’ora
# il sito marketing minimo con Vite
npm create vite@latest sito-marketing -- --template react-ts
cd sito-marketing && npm install && npm run build
# quello che il crawler riceve davvero
node -e "console.log(require('fs').readFileSync('dist/index.html','utf8').length)"
Se il numero è sotto i duemila byte, l’HTML contiene solo lo scheletro: il testo della landing è nel bundle. Lo stesso controllo su Next.js mostra l’HTML della pagina, perché è stato generato prima della richiesta.
Il limite da mettere per iscritto
Limite dichiarato di Vite: non è un meta-framework. Non ha routing, generazione statica per rotta né rendering sul server: chi ha bisogno di HTML per ogni URL aggiunge un plugin o cambia strumento. Per un sito marketing con una sola pagina il limite non si vede; con dieci pagine indicizzabili diventa il costo principale.
Licenze e costi
Next.js è MIT e Vite è MIT, quindi la licenza non decide. Decide l’hosting: file statici costano meno di un runtime Node che deve restare acceso. I blocchi copiati sono un secondo controllo: 1.459 dei 1.556 dichiarano «see source», quindi la licenza va verificata record per record prima di pubblicare.
Le hero si cercano in /blocks/category/hero, le sezioni prezzi in /blocks/category/pricing e i componenti di pagina in /components/cat/hero. Per il routing e i confini del framework leggi la struttura di Next.js App Router, per capire cosa deve contenere la pagina a cosa serve un sito web; il confronto tra basi possibili è in WordPress, Wix o componenti React.
Domande frequenti
Next.js è obbligatorio per un sito marketing?
No. Serve quando le pagine devono essere HTML prima del JavaScript. Un sito a pagina singola funziona con Vite e un passo di prerender.
Vite può generare HTML statico per ogni rotta?
Sì, con un plugin di prerender o un meta-framework costruito sopra Vite. Non fa parte della configurazione base.
Quale dei due è più veloce in sviluppo?
Vite avvia più in fretta un progetto piccolo. Next.js aggiunge compilazione del server, cache e confine tra componenti.
Next.js costa di più?
Dipende dall’hosting: un runtime Node costa più di file statici. Il codice è MIT in entrambi i casi.
Posso passare da Vite a Next.js dopo?
Sì, se le rotte sono poche e i componenti non dipendono dal router. Il costo è nel routing e nel caricamento dei dati.