Next.js self-hosted con Docker o Vercel: quando conviene cosa
Il self-hosting di Next.js su un VPS gestito puo far scendere una bolletta Vercel da 600 $ a circa 90 $. Ecco cosa rinunci e quando il cambio conviene.
Fare self-hosting di Next.js vuol dire eseguire la build di produzione con output: 'standalone' dentro un container Docker, su un server che gestisci tu, invece di fare push su Git e lasciare il runtime a Vercel. Il codice dell'applicazione e identico nei due casi. La scelta riguarda chi si prende il carico operativo, e cosa ti da in cambio quel carico: costi, controllo, vincoli.
La differenza pesa soprattutto quando un SaaS passa dal traffico da progetto personale all'uso reale. Su un'app piccola il piano gratuito di Vercel e difficile da battere. Su un'app che serve centinaia di migliaia di visitatori al mese, la bolletta e i limiti della piattaforma iniziano a condizionare le scelte di architettura. Qui sotto trovi il confronto che usiamo quando un cliente ci chiede dove fare il deploy. Se devi ancora scegliere il runtime a livello di funzione, e un'altra decisione e ne parliamo in come arrivare in verde sui Core Web Vitals.
La versione breve
Scegli Vercel quando il team e piccolo, il traffico e imprevedibile e il tempo di chi sviluppa vale piu della spesa di hosting. Scegli Docker self-hosted quando il traffico e costante e alto, quando servono processi lunghi che le funzioni serverless interrompono, o quando la residenza dei dati e il controllo dei costi contano piu della comodita. Quasi tutti i prodotti partono dal primo e passano al secondo solo quando lo impongono i numeri.
Vercel o Docker self-hosted: il confronto onesto
| Aspetto | Vercel | Docker self-hosted |
|---|---|---|
| Setup | git push, zero configurazione | Dockerfile, VPS, reverse proxy, CI/CD da gestire |
| Costo a ~500K visite/mese | circa 600 $/mese (dato riportato) | circa 90 $/mese su VPS gestito (dato riportato) |
| Processi lunghi | le funzioni si fermano a 300 secondi sul piano Pro | nessun limite di esecuzione |
| Edge globale | incluso | aggiungi tu una CDN |
| Preview deploy | inclusi | Coolify o la tua pipeline |
| Ottimizzazione immagini | automatica | installi sharp nello stage runner |
| ISR su piu istanze | automatica | cache handler personalizzato (Redis) |
| Uptime | gestito, SLA su Enterprise | a carico tuo, senza SLA |
| Adatto a | team piccoli, traffico a picchi | traffico alto e costante, vincoli di costo o dati |
Dove vince il self-hosting
Il costo su volumi alti
Un carico da 500.000 visitatori al mese che su Vercel costa circa 600 $ puo scendere intorno ai 90 $ su un VPS gestito con Coolify, circa l'85% in meno (MassiveGRID). Il risparmio nasce dal prezzo fisso del server: niente costo per utente, niente sovrapprezzo di banda a 0,15 $ per gigabyte oltre il terabyte incluso (prezzi Vercel).
Nessun tetto di esecuzione
Sul piano Pro le funzioni di Vercel si fermano a 300 secondi (limiti delle funzioni Vercel). Un processo Node self-hosted puo generare un report, un PDF o una chiamata lunga a un modello AI per tutto il tempo che serve.
I dati accanto al calcolo
Puoi eseguire Postgres nella stessa rete Docker dell'app e portare la latenza verso il database vicino allo zero. Aiuta con i dati regolamentati che devono restare in una regione precisa, e con le query frequenti che pagano un costo di andata e ritorno su un database gestito.
Nessun lock della piattaforma
L'output standalone e Node puro. Gira su qualunque VPS, qualunque cloud, su Kubernetes. Cambiare provider e un nuovo deploy, non una riscrittura.
Dove vince Vercel
Zero operations
Deploy con git push, SSL automatico, nessun server da aggiornare. Per un founder solo o un team di tre persone, le ore risparmiate valgono piu della bolletta.
La rete edge e la pipeline immagini funzionano da sole
CDN globale, ottimizzazione immagini e ISR girano senza configurazione. In self-hosting ognuna di queste e un lavoro che ti prendi tu, e una cosa che si puo rompere.
Le preview a ogni pull request
Incluse. Chi rivede apre un URL live per ogni branch senza pensarci.
Scala senza che tu lo sorvegli
I picchi di traffico sono un problema della piattaforma, non una notifica alle due di notte per chi e di turno.
Le insidie che nessuno dice prima della produzione
sharp
La traccia standalone spesso lascia fuori sharp, il modulo nativo che Next.js usa per ottimizzare le immagini. Lo installi a mano nello stage runner del Docker, altrimenti le immagini si rompono al primo deploy (guida al self-hosting di Next.js).
La cache ISR
Di default la cache e il filesystem locale di una sola istanza. Avvia due istanze dietro un load balancer e si disallineano. L'ISR multi-istanza richiede un cache handler personalizzato su storage condiviso, di solito Redis (guida al self-hosting di Next.js).
I file statici
Il server standalone serve i file statici, ma non e pensato per quello. Sotto carico, servire gli asset da Node toglie CPU al rendering. Metti davanti una CDN o Nginx.
L'uptime
Nessuno SLA gestito. Se il VPS cade, l'app cade. Prima del lancio metti in conto monitoraggio, backup e un percorso di rollback, non dopo il primo down.
Cosa usiamo noi e perche
Per le nuove build SaaS partiamo da Vercel. All'inizio il traffico e ignoto e il team e piccolo, quindi pagare per avere zero operations e la scelta giusta. Gestiamo cosi anche il nostro sito. Quando un prodotto raggiunge un traffico stabile e prevedibile, o ha bisogno di processi lunghi, o porta dati con vincoli di residenza, lo spostiamo su una build Docker self-hosted dietro un reverse proxy, con Redis per la cache ISR e una CDN davanti agli asset statici. Il momento del passaggio non e mai una questione di principio. E il mese in cui la bolletta di Vercel, o un limite della piattaforma, costa piu del tempo operativo per gestire tutto in casa. Chi fa self-hosting riferisce circa cinque ore per montare la pipeline e dalle 10 alle 20 ore l'anno per mantenerla (Autonoma). Mettilo nel conto prima di decidere.
Domande frequenti
- Quanto si risparmia davvero con il self-hosting di Next.js rispetto a Vercel?
- Dipende dal traffico. Sotto il piano gratuito, Vercel costa meno di qualunque VPS perche e gratis. Il divario si apre su volumi alti. Carichi riportati intorno ai 500.000 visitatori al mese girano vicino ai 90 $ su un VPS gestito contro circa 600 $ su Vercel, l'85% in meno. Il risparmio e il prezzo fisso del server, senza costo per utente e senza sovrapprezzo di banda. Prima di chiamarlo un vantaggio, togli le ore che ci metti a gestirlo.
- Si perdono ISR e ottimizzazione immagini lasciando Vercel?
- No, ma li configuri tu. L'Incremental Static Regeneration funziona da subito su una sola istanza con disco persistente. Su piu istanze serve un cache handler personalizzato su Redis o simili. L'ottimizzazione immagini funziona dopo che installi il modulo sharp nello stage runner del Docker: la traccia standalone spesso lo lascia fuori. Si risolvono entrambi in un pomeriggio, ma nessuno dei due e automatico come su Vercel.
- Basta Coolify o serve Kubernetes?
- Per la maggior parte dei SaaS basta Coolify o un livello PaaS simile su un singolo VPS. Ti da deploy con git push, SSL automatico e ambienti di preview senza scrivere manifest Kubernetes. Passa a Kubernetes quando gestisci davvero molti servizi, ti serve autoscaling orizzontale su piu nodi, o hai un team di ops che lo mantiene. Per una sola app e un team piccolo, Kubernetes pesa piu di quanto il carico giustifichi.
- Quando e un errore lasciare Vercel?
- Quando il team e piccolo e il traffico e imprevedibile. Il self-hosting scambia una bolletta prevedibile con la responsabilita operativa: uptime, patch di sicurezza, backup e CI/CD diventano tuoi. Se la bolletta di Vercel e sotto qualche centinaio di dollari al mese e nessuno nel team vuole gestire un server alle due di notte, il cambio costa piu in attenzione di quanto faccia risparmiare. Passa quando ti spingono i numeri, non il principio.
Studio
Inizia un progetto.
Un partner unico per il prodotto digitale che devi costruire. Produzione più veloce, tecnologie moderne, costi ridotti. Un team, una fattura.