Adamarant
Inizia
Torna agli Appunti

Docker o Vercel per Next.js: quando il self-hosting conviene

Infrastructure and SEO25 giu 20265 min di letturaAggiornato il 16 ago 2026

Ospitare Next.js su un VPS gestito può ridurre una bolletta Vercel da 600$ a circa 90$ al mese. Cosa perdi in scaling ed edge, e quando conviene il cambio.

gray concrete building under blue sky during daytime

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

AspettoVercelDocker self-hosted
Setupgit push, zero configurazioneDockerfile, VPS, reverse proxy, CI/CD da gestire
Costo a ~500K visite/mesecirca 600 $/mese (dato riportato)circa 90 $/mese su VPS gestito (dato riportato)
Processi lunghile funzioni si fermano a 300 secondi sul piano Pronessun limite di esecuzione
Edge globaleinclusoaggiungi tu una CDN
Preview deployinclusiCoolify o la tua pipeline
Ottimizzazione immaginiautomaticainstalli sharp nello stage runner
ISR su piu istanzeautomaticacache handler personalizzato (Redis)
Uptimegestito, SLA su Enterprisea carico tuo, senza SLA
Adatto ateam piccoli, traffico a picchitraffico 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.

Foto di Parsoa Khorsand su Unsplash

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.

Scriviamo riguardo a ciò che costruiamo. Raccontaci cosa vuoi costruire tu.