← Blog Guías para agencias • 10 min de lectura Cómo las agencias corren 40+ apps aisladas de staging y producción de clientes con $60/mes de servidores Hetzner (con vistas previas de PR automáticas y una entrega limpia al cliente)
Toda agencia que aloja trabajo de clientes eventualmente choca con el mismo muro: la factura de hosting crece con la lista de clientes, pero el precio propio de la agencia al cliente no. Una plataforma que cobra por asiento, por proyecto o por gigabyte convierte cada cliente nuevo en un margen más pequeño que el anterior, hasta que el hosting se convierte en la línea que el cliente cuestiona en la factura. Esa matemática es la razón real por la que las agencias terminan buscando una alternativa, no una antipatía hacia Vercel o Render como productos.
La solución no es una plataforma más barata por asiento. Es no facturar por cliente en absoluto. A continuación hay un ejemplo trabajado: 20 clientes, cada uno con una copia de staging y una de producción de su app (40 entornos corriendo), aislados entre sí, con precios reales de servidores Hetzner y un precio plano de equipo de Railyard, comparado contra lo que esos mismos 40 entornos cuestan en los planes publicados de Vercel o Render.
Resumen
| Vercel | Render | Railyard + Hetzner | |
|---|---|---|---|
| Modelo de precio | Pro: $20/mes por miembro, incluye $20 de uso, luego facturado por uso | Workspace Pro: $25/mes plano + cómputo desde ~$7/mes por servicio | $99/mes Team, plano, servidores y apps ilimitados |
| 40 entornos de clientes corriendo | No tiene precio por app: el costo es uso (ancho de banda, invocaciones de funciones) a través de las 40, que es donde las agencias sobrepasan el plan base | 40 servicios × ~$7/mes mínimo = $280/mes de cómputo + $25 de workspace = piso de $305/mes, antes de que cualquier servicio necesite más que la instancia más barata | Incluido en la cuota plana; el único costo agregado son los servidores mismos |
| Un cliente que requiere SSO | SAML SSO es un add-on de $300/mes encima de Pro | El plan Scale ($499/mes plano) agrega SSO y SCIM | Incluido en $99/mes Team |
| Costo de servidor para 40 entornos | N/A (sin servidor, es la infraestructura de Vercel) | N/A (sin servidor, es la infraestructura de Render) | 10 servidores Hetzner CX23 (2 vCPU, 4 GB, €5.99/mes cada uno) = €59.90/mes, facturados directamente por Hetzner |
| Aislamiento por cliente | A nivel de proyecto, plataforma compartida | A nivel de servicio, plataforma compartida | Un servidor dedicado (o entorno) por cliente, red privada, base de datos separada |
La fila de Render sola cruza los $500/mes antes de que la app de un solo cliente necesite más RAM de la que da la instancia inicial de Render. La fila de Vercel no tiene un número limpio por app porque su facturación no es por app, que es exactamente el problema: una agencia no puede cotizarle a un cliente un costo de hosting desde la página de precios de Vercel, solo desde la factura del mes pasado.
Por qué la facturación por asiento y por app se rompe específicamente para una agencia
Un equipo de un solo producto en Vercel o Render paga por su propio uso. Una agencia paga por el uso de veinte clientes distintos en una sola cuenta, y cada pico de tráfico, build fallido y despliegue de vista previa de esos clientes cae en la factura propia de la agencia, no en la del cliente. La cifra de $7/mes de Render es un precio inicial para el tamaño de instancia más pequeño; la app de producción real de un cliente, la que de verdad atiende a sus propios clientes, necesita más que eso en el momento en que deja de ser un juguete. Multiplica cualquier número realista por servicio por 40 entornos corriendo y la agencia está gestionando una factura que se mueve cada mes por razones que no tienen nada que ver con el trabajo propio de la agencia.
El plan Team de $99/mes de Railyard es plano: servidores y apps ilimitados, aprobaciones de despliegue, inicio de sesión único y SCIM, y un registro de auditoría, por un solo precio sin importar cuántos clientes haya en la cuenta. El único número que se mueve es lo que Hetzner, DigitalOcean o cualquier proveedor que la agencia ya use cobre por los servidores mismos, y esa factura viene directamente del proveedor, sin nada agregado encima.
El modelo de aislamiento: un cliente, un servidor (o un entorno)
Hay dos formas honestas de aislar el trabajo de clientes en Railyard, y cuál se ajusta depende del cliente.
Un servidor dedicado por cliente. La agencia conecta una cuenta de Hetzner (o DigitalOcean, Vultr, AWS), y cada cliente obtiene su propio servidor. Sus apps de staging y producción, su base de datos, sus logs, todo vive en esa única máquina, sin nada de la cuenta de otro cliente cerca. Este es el modelo más simple de explicarle a un cliente que pregunta “dónde viven mis datos”, y es el que usa la tabla trabajada más abajo.
Un servidor compartido, un entorno por cliente. Para clientes más pequeños donde un servidor dedicado es excesivo, varios proyectos de clientes pueden compartir un servidor. El aislamiento se mantiene: cada app obtiene su propia base de datos, aprovisionada por app con su propio usuario y credenciales, y el nombre privado de cada app (<name>.railyard.internal) solo resuelve al contenedor propio de esa app: una referencia entre las apps de dos clientes distintos simplemente no existe, no hay ninguna ruta de red compartida que configurar mal. Networking cubre cómo funciona realmente esa resolución privada a través de servidores una vez que la red privada está activada para el equipo.
De cualquier forma, los entornos son copias completas de un proyecto: activar un entorno le da a un cliente una copia de staging real con su propia base de datos, no un sandbox compartido que resulta tener el mismo código.
La tabla de costos trabajada: 40 entornos, $60/mes de Hetzner
Diez servidores Hetzner CX23 (2 vCPU, 4 GB de RAM, 40 GB de disco, €5.99/mes cada uno, el plan de vCPU compartida más barato de Hetzner al momento de escribir esto) suman €59.90/mes, facturados directamente por Hetzner. Pon un cliente en cada servidor, corriendo un proceso web y un worker, cada uno con una copia de staging y una de producción:
| Por cliente | × 10 clientes | |
|---|---|---|
| Servicios | Web + worker | 20 procesos |
| Entornos | Staging + producción | 40 apps corriendo |
| Servidor | 1 Hetzner CX23 dedicado (€5.99/mes) | €59.90/mes total |
Cuatro contenedores por cliente suena ajustado en 4 GB de RAM, y lo sería si los cuatro corrieran a carga completa simultáneamente. No lo hacen: los entornos de staging se duermen tras 30 minutos sin tráfico por defecto, liberando RAM de vuelta para producción, así que la máquina de un cliente solo tiene que llevar su carga de producción la mayor parte del tiempo más tráfico ocasional de staging cuando la agencia o el cliente realmente lo está mirando. Eso es suficiente margen para el tipo de trabajo de cliente que corre la mayoría de las agencias (sitios de marketing, pequeñas herramientas internas, productos en etapa inicial), no para un cliente cuya app de producción ya está bajo carga pesada, que es exactamente el cliente al que le darías una máquina más grande o un servidor propio.
Escala esto más allá de 10 clientes y el único número que cambia es cuántos servidores Hetzner está alquilando la agencia, al precio de Hetzner, sin margen. 20 clientes son 20 servidores a aproximadamente €120/mes; el lado de la factura de Railyard se mantiene en $99/mes planos sin importar si son 10 clientes o 200.
Vistas previas de PR que los clientes realmente entienden
Con GitHub conectado y las vistas previas activadas para una app, cada pull request obtiene su propia copia en vivo, eliminada automáticamente cuando se cierra el PR. Esa es una URL que la agencia puede soltar directamente en un hilo de Slack con el cliente o en un correo, algo como “aquí está el rediseño de la página de inicio, explóralo”, sin levantar un despliegue de staging separado a mano por cada ronda de retroalimentación. Está incluido en Pro y Team, no una línea que aparece una vez que la cuenta de la agencia cruza algún umbral de uso.
Entrega limpia cuando el proyecto termina
Dos cosas distintas pueden pasar al final de un compromiso, y no son la misma función.
Si el trabajo de cada cliente ha vivido dentro del Team propio de la agencia, nada sobre la entrega es automático: la agencia se queda con los servidores, o transfiere la propiedad del servidor específico y los registros de la app a la propia cuenta del cliente a mano.
Si la agencia usó workspaces de cliente en su lugar (una función del plan Agency, $199/mes, que agrega workspaces de cliente bajo una sola factura de agencia encima de todo lo que incluye Team: SSO, SCIM, aprobaciones de despliegue, registro de auditoría, replicado en cada workspace), cada cliente ya vive en su propio equipo desde el primer día, con sus propios servidores facturados a su propia cuenta cloud. Terminar el compromiso es una entrega de cliente: la agencia invita el propio correo del cliente como el nuevo dueño de ese workspace, y el workspace del cliente se desconecta limpiamente de la facturación y el acceso de administrador de la agencia. El cliente termina siendo dueño exactamente de la infraestructura en la que ya estaba corriendo, nada más.
Team a $99/mes es el ajuste correcto para una agencia que quiere un solo lugar para gestionar las apps de cada cliente bajo su propia cuenta, con la ventaja de margen de un precio plano. Agency a $199/mes es el ajuste correcto en el momento en que “darle al cliente su propia factura y una salida limpia” realmente es parte de cómo la agencia vende sus compromisos.
Equipos, SSO y el registro de auditoría
En el momento en que la propia revisión de seguridad de un cliente pide inicio de sesión único, Vercel responde con un add-on de $300/mes y Render responde empujando a la agencia hacia su plan Scale de $499/mes. En el plan Team de Railyard, SSO sobre OpenID Connect o SAML, el aprovisionamiento SCIM, y el registro de auditoría que graba cada despliegue, cambio de variable y aprobación ya están incluidos en $99/mes. Mira Equipos, SSO y acceso para saber cómo se conectan realmente OpenID Connect, SAML y SCIM, y cómo las claves SSH del equipo se agregan a cada servidor en su propio bloque gestionado sin tocar las claves que la agencia agregó por su cuenta.
Para quién es esto realmente
Esto no es un argumento de venta para toda agencia. Una agencia que corre dos o tres clientes en un servidor, sin que nadie pregunte por SSO, probablemente no necesita nada de esto; el plan gratuito o un solo equipo Pro cubre eso bien. Esto es para la agencia que ya paga $500 o más al mes a través de proyectos de clientes en una plataforma por asiento, gestionando una factura que se mueve por razones fuera de su control, y que quiere un costo de hosting que realmente pueda cotizarle a un cliente desde una lista de precios en lugar de la factura del mes pasado. Mira precios para el desglose completo de planes, o agencias para el resto de lo que incluye el plan Agency.
Preguntas frecuentes
¿Necesito el plan Agency, o Team cubre esto?
Team ($99/mes) cubre servidores y apps ilimitados, SSO, aprobaciones de despliegue y un registro de auditoría bajo una cuenta, suficiente para una agencia que gestiona ella misma las apps de cada cliente. Agency ($199/mes) agrega workspaces de cliente: workspaces separados por cliente, cada uno con las funciones propias de Team, entregados limpiamente al cliente cuando termina el compromiso.
¿Cada cliente necesita su propio servidor?
No. Un servidor dedicado por cliente es el modelo más simple y el que usa la tabla trabajada de este artículo, pero los clientes más pequeños pueden compartir un servidor, cada uno con su propio entorno, base de datos y nombre privado, aislados entre sí sin necesitar una máquina dedicada cada uno.
¿Qué pasa con la app de un cliente si se cancela la cuenta de Railyard de la agencia?
La app es un contenedor en un servidor facturado por el propio proveedor cloud de la agencia; cancelar la suscripción de Railyard no la detiene. Un workspace de cliente que ya ha sido entregado al cliente no se ve afectado en absoluto por nada que pase en la propia cuenta de la agencia, ya que para entonces es un equipo separado.
¿Cómo es esto más barato que Render una vez que sumas los costos de servidor?
No es automáticamente más barato para un solo cliente; es más barato a escala, porque la cuota de Railyard no crece por cliente de la forma en que lo hace el cómputo por servicio de Render. Diez clientes cuestan $99/mes más aproximadamente €60/mes en servidores Hetzner; veinte clientes cuestan los mismos $99/mes más aproximadamente €120/mes en servidores. La línea de cómputo de Render crece con cada servicio agregado, encima de una cuota de workspace de $25 o $499.
¿Puedo migrar clientes existentes desde Vercel o Render?
Sí, específicamente para Heroku, Render, Railway y Fly.io. Importar desde otra plataforma trae la configuración, los tipos de proceso y las bases de datos gestionadas directamente desde un token de API. Los proyectos de Vercel se mueven como un despliegue nuevo desde el repositorio del cliente en lugar de una importación automatizada, ya que la propia API de Vercel no expone la misma configuración a nivel de proceso que las demás.