
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 es SSH, un process manager, TLS y una noche con nginx. Para muchos side projects basta Git de entrada y HTTPS de salida — el trabajo de un PaaS tipo Heroku. Esta guía compara ese camino (ejemplo: Railway) con Vercel, Render y un droplet clásico, para alojar una app Next.js sin convertirte en sysadmin.
Cuándo el VPS es trabajo de más
La plataforma construye desde el repo, lanza el proceso, termina TLS y reinicia si cae. Sigues dueño de las env vars, la factura y la madurez de la app. Ya no parcheas Ubuntu.
Mejoras
Sigue haciendo falta minificar y comprimir assets, dejar los secretos fuera de Git y mirar Core Web Vitals. Un PaaS no sustituye gzip y Brotli en origen o un CDN: solo deja de escribir el bloque nginx tú.
Beneficios SEO
Publicar una app Next.js en Railway desde Git
Railway detecta Node (Nixpacks/Railpack). Una app Next.js estándar con script start basta. Prefiere GitHub a un zip. El enlace de invitación de arriba te da ahora 20 $ de créditos a ti al registrarte — es la oferta de Railway, no un cupón FastMinify, y el importe puede cambiar.
1. Un repo que buildea sin CI mágica
package.json con build y start (o next start). Lockfile commiteado. Nada de secretos en .env de Git — variables en la UI de Railway.
2. Crear el proyecto desde GitHub
Proyecto nuevo en Railway → deploy from GitHub → elige el repo. El primer deploy suele fallar por una env var que falta; es normal. Añade DATABASE_URL o las claves y vuelve a desplegar.
3. Dominio generado, luego el tuyo
La URL *.up.railway.app confirma que la app arranca. Dominio propio después. TLS lo emiten ellos.
4. Mira la primera factura, no el screenshot
Hobby incluye un crédito de uso pequeño; Pro, más. CPU, RAM y egress fuera del plan se facturan por segundo. Un servicio parado no cuesta. Lee los precios de Railway antes de dejar un Node gordo 24/7.
Checklist
Dockerfile si Nixpacks se equivoca, falta un paquete de sistema, o la imagen ya es la fuente de verdad. Líntalo en el navegador: linter de Dockerfile en línea (reglas DL estilo Hadolint, no un build). Combínalo con el formateador de Dockerfile.
Fija la imagen base
Evita FROM node:latest (DL3007). Pin de tag de distro. Railway construye ese Dockerfile si está en la raíz del repo.
Escucha PORT
No dejes 3000 a fuego si la plataforma inyecta PORT. Next.js lo respeta con next start -p $PORT o equivalente.
Errores que queman el primer deploy PaaS
Un ENV AWS_SECRET= en el Dockerfile o un .env commiteado se filtra en logs y layers. Las variables de Railway existen para que la imagen sea genérica.
A tener en cuenta — Valida la sintaxis .env con el checker FastMinify; nunca pegues tokens reales en un textarea público.
En Vercel el routing serverless de Next.js viene impuesto. En Railway sueles correr next start como proceso largo. output: 'standalone' ayuda. El middleware Edge solo de Vercel no aparece por arte de magia.
A tener en cuenta — Haz un build de producción en el portátil antes del primer push PaaS.
Un PaaS no minifica tu JS de cliente. Next lo hace para la app; no para un widget.js en public/. Para esos restos, el minificador de JavaScript en línea.
A tener en cuenta — Mide la transferencia en la URL de Railway, no solo en localhost.
Antes de pulsar deploy
FastMinify se queda en la pestaña — útil cuando el repo no está clonado en esta máquina. Minifica el CSS suelto, lintea el Dockerfile, revisa Compose si Docker sigue en local.
Railway factura el uso por encima de los créditos del plan. Un servicio olvidado con un heap Node de 2 GB es la sorpresa. Para los servicios que no uses. Misma familia de error que un Droplet que nunca destruyes — otro dashboard.
PaaS vs Vercel vs VPS
Vercel es el menor esfuerzo para un frontend Next.js. Un VPS gana si quieres kernel a medida, correo, SSH. Railway está en medio: deploy Git, factura por uso, sitio para un worker y una base junto a la app.
Si necesitas
Empieza por
Railway no es la única respuesta
Un mapa, no un ranking. Precios y free tiers cambian — lee la página del vendor.
Vercel
El equipo de Next.js. Mejor DX para App Router, previews y Edge. Encaja peor si necesitas un worker largo o una base clásica en el mismo proyecto sin más vendors.
Ventajas:
Inconvenientes:
Render
Deploys Git, web services, Postgres, workers. Primo de Railway. Quédate con el dashboard donde ya tienes cuenta.
Ventajas:
Inconvenientes:
Droplet DigitalOcean (o App Platform)
Un Droplet es un VPS: instalas Node, Caddy o nginx, certbot, la caja es tuya. App Platform es el PaaS de DigitalOcean. Mejor si ya piensas en SSH y quieres una IPv4 propia.
Ventajas:
Inconvenientes:
FastMinify antes de la primera URL de prod
El build de producción de Next.js minifica el JS de la app. No un widget.js copiado a public/ ni un snippet de CMS. Usa el minificador de JavaScript en línea y el minificador CSS en línea. Archivo de vendor ilegible: desminificador de JavaScript en línea.
Si Railway (u otro) construye un Dockerfile, lintéalo primero. Compose en local: validar Docker Compose en línea. Revisa archivos .env por claves duplicadas antes de copiar nombres a la UI del PaaS. Todo está en el hub de herramientas DevOps en línea.
Publica la URL, deja el VPS para más adelante
Si el trabajo es un side project Next.js y quizá un worker, un PaaS cuesta menos noches que un Droplet. Railway es el ejemplo detallado (enlace de afiliado). Vercel sigue siendo el default si solo quieres el frontend Next.js. Un VPS sigue siendo la opción tozuda cuando quieres SSH. Minifica restos y lintea Dockerfiles en FastMinify en cualquier caso — gratis y local.
Artículos relacionados

Convierte texto, un archivo o una imagen a Base64 (y al revés) en el navegador — data URI, adjunto email, segmento JWT. 100 % local.

Compila un fragmento SCSS o LESS (variables, mixins) a CSS en el navegador, sin npm run build — útil para una PR, un snippet o un entorno sin Node.

Un contraste insuficiente entre texto y fondo es el error de accesibilidad más frecuente en la web. Comprueba AA/AAA pegando dos colores, sin plugin ni extensión.