
Desplegar Next.js sin VPS: Railway, Render o Droplet
Evita SSH y nginx para un side project Next.js. Compara Railway, Render, Vercel y un VPS, y despliega desde Git tras minificar los assets en el navegador.
La app está lista. Falta una URL.
Un next dev local no es producción. Alquilar un VPS implica SSH, un gestor de procesos, TLS y una noche con nginx. Para muchos proyectos personales basta con Git de entrada y HTTPS de salida, que es lo que hace un PaaS al estilo de Heroku. Esta guía compara ese camino (ejemplo seguido: Railway) con Vercel, Render y un Droplet clásico, para alojar una app Next.js sin convertirte en administrador de sistemas.
Cuándo el VPS es trabajo de más
La plataforma construye desde el repositorio, lanza el proceso, gestiona el TLS y reinicia si cae. Sigues siendo responsable de las variables de entorno, la factura y la madurez de la app. Ya no tienes que parchear Ubuntu.
Mejoras
Sigue haciendo falta minificar y comprimir los recursos, dejar los secretos fuera de Git y vigilar los Core Web Vitals. Con next start, Next.js ya comprime las respuestas con gzip por defecto; para Brotli o un CDN, consulta nuestra guía sobre gzip y Brotli en el servidor de origen. Un PaaS solo te ahorra escribir el bloque de nginx.
Beneficios SEO
Publicar una app Next.js en Railway desde Git
Railway construye tu repositorio con Railpack por defecto (Nixpacks también es compatible) y ejecuta el script start de package.json, así que una app Next.js estándar no necesita más configuración. Lo más sencillo es conectar un repositorio de GitHub. El enlace de invitación de arriba te da ahora 20 $ de créditos al registrarte. Es una oferta de Railway, no un cupón de FastMinify, y el importe puede cambiar.
1. Un repositorio que compila por sí solo
Comprueba que package.json tenga los scripts build y start (next build y next start en una app estándar) y que el lockfile esté en el repositorio. No subas secretos en un .env a Git y define las variables en la interfaz de Railway.
2. Crear el proyecto desde GitHub
En Railway, crea un proyecto nuevo desde GitHub y elige el repositorio. El primer despliegue suele fallar por una variable de entorno que falta, y es normal. Añade DATABASE_URL o tus claves de API y vuelve a desplegar.
3. Dominio generado, luego el tuyo
Usa la URL generada *.up.railway.app para comprobar que la app arranca. Después añade tu propio dominio. Railway emite el certificado TLS por ti.
4. Mira la primera factura, no la captura de pantalla
En el momento de escribir esto, el plan Hobby cuesta 5 $ al mes e incluye 5 $ de uso; Pro cuesta 20 $ e incluye 20 $. Por encima de eso, la CPU, la RAM y el tráfico saliente se cobran según el uso, y un servicio detenido no consume ni CPU ni RAM. Lee la página de precios de Railway antes de dejar un proceso Node pesado funcionando día y noche.
Checklist
Usa un Dockerfile cuando Railpack se equivoque, falte un paquete del sistema o la imagen ya sea tu fuente de verdad. Revísalo en el navegador antes del primer despliegue con el linter de Dockerfile en línea, que aplica un subconjunto de reglas DL al estilo de Hadolint y no construye la imagen. Combínalo con el formateador de Dockerfile.
Fija la imagen base
Evita FROM node:latest (DL3007) y fija un tag concreto de distribución. Railway construye ese Dockerfile si está en la raíz del repositorio.
Escucha PORT
No fijes el puerto 3000 en producción si la plataforma inyecta la variable PORT. Al ejecutar next start, Next.js lee por sí mismo esa variable (3000 es solo el valor por defecto), igual que el servidor server.js del modo standalone, así que pasar -p $PORT es opcional.
Errores que estropean el primer despliegue en un PaaS
Una línea ENV AWS_SECRET= en el Dockerfile o un .env subido a Git se filtra en los logs y en las capas de la imagen. Las variables de Railway existen para que la imagen siga siendo genérica.
A tener en cuenta — Comprueba la sintaxis del archivo .env con el validador ENV de FastMinify y no pegues nunca tokens reales en un campo de texto público.
Vercel ejecuta Next.js como funciones serverless y se encarga del enrutamiento. En Railway sueles lanzar next start como un proceso Node de larga duración, y output: 'standalone' genera una carpeta de servidor autónoma. Las funciones ligadas a la plataforma Vercel, como Edge Config o las tareas cron, no te siguen a otro hosting.
A tener en cuenta — Haz un build de producción en tu ordenador antes del primer push al PaaS.
Un PaaS no minifica tu JavaScript de cliente. Next.js lo hace para la app, pero no para un widget.js copiado en public/. Para esos archivos sueltos, usa el minificador de JavaScript en línea.
A tener en cuenta — Mide la transferencia en la URL de Railway y también en localhost.
Antes de lanzar el despliegue
FastMinify trabaja en la pestaña del navegador, lo que ayuda cuando el repositorio no está clonado en esta máquina. Minifica el CSS suelto, pasa el Dockerfile por el linter y revisa Compose si Docker sigue en local.
Railway cobra el uso que supera los créditos incluidos en el plan. Un servicio olvidado que ocupa 2 GB de RAM basta para que un proyecto personal acabe en una factura sorpresa. Detén los servicios que no uses o activa Serverless para que un servicio inactivo pase a reposo (el tráfico saliente, como una conexión abierta a una base de datos, lo mantiene despierto). Un Droplet que nunca destruyes es el mismo error en otro panel.
PaaS vs Vercel vs VPS
Vercel es el camino que menos esfuerzo exige para un frontend Next.js. Un VPS gana cuando necesitas un kernel a medida, un servidor de correo o SSH. Railway queda en medio: despliegue desde Git, facturación por uso y sitio para un worker y una base de datos junto a la app.
Si necesitas
Empieza por
Railway no es la única respuesta
Úsalo como un mapa, no como un ranking. Los precios y los planes gratuitos cambian, así que lee la página del proveedor antes de decidirte.
Vercel
Creado por el equipo de Next.js, con el soporte más directo para App Router, vistas previas y Edge. Encaja peor si necesitas un worker de larga duración o una base de datos clásica en el mismo proyecto, sin proveedores adicionales.
Ventajas:
Inconvenientes:
Render
Despliegues desde Git, web services, Postgres, workers en segundo plano. Primo cercano de Railway. Quédate con la plataforma donde ya tienes cuenta.
Ventajas:
Inconvenientes:
Droplet DigitalOcean (o App Platform)
Un Droplet es un VPS: instalas Node, Caddy o nginx y certbot, y la máquina es tuya. App Platform es el PaaS de DigitalOcean. Un Droplet encaja si ya trabajas con SSH y quieres una dirección IPv4 pública propia.
Ventajas:
Inconvenientes:
FastMinify antes de la primera URL de producción
El build de producción de Next.js minifica el JavaScript de la app, pero no un widget.js copiado en public/ ni un fragmento de CMS. Para esos archivos sueltos, usa el minificador de JavaScript en línea y el minificador CSS en línea. Cuando un archivo de terceros se vuelve ilegible en producción, el desminificador de JavaScript en línea lo devuelve a un formato legible.
Si Railway u otro host construye un Dockerfile, revísalo antes. Si todavía usas Compose en local, puedes validar Docker Compose en línea. Busca claves duplicadas en tus archivos .env antes de copiar los nombres en la interfaz del PaaS. Todas estas herramientas están en el hub de herramientas DevOps en línea.
Publica la URL, deja el VPS para más adelante
Si lo que tienes es un proyecto personal con Next.js y quizá un worker, un PaaS cuesta menos noches que un Droplet. Railway es el ejemplo que hemos seguido (enlace de afiliado). Vercel sigue siendo la opción por defecto si solo necesitas el frontend Next.js, y un VPS sigue siendo la opción correcta cuando quieres SSH. En cualquier caso, minifica los archivos sueltos y revisa los Dockerfiles en FastMinify: ese paso es gratis y local.
Prepara los assets y despliega donde hayas elegido
Artículos relacionados

Pega un token y un JWKS para comprobar una firma RS256, ES256 o HS256 en el navegador. Elección de la clave por kid, errores medidos y claims que revisar.

HTTP/2 y HTTP/3 cambian el trayecto de los archivos, no su peso. Mediciones de tamaño, compilación y bundling muestran lo que la minificación aún aporta.

Convierte un epoch Unix en una fecha legible y al revés, distingue segundos de milisegundos y evita las trampas de zona horaria, JWT y cambio de hora.