Módulo 7: Alternative Platforms (Render, Railway, Fly.io)

5. Comparativa de Plataformas: Render vs Railway vs Fly.io

Descripción

En esta cápsula vas a poner las tres plataformas lado a lado con datos concretos. Has desplegado tu app AI en Render (cápsula 02), Railway (cápsula 03) y Fly.io (cápsula 04). Ahora toca comparar de forma estructurada: pricing real, límites de free tier, features, limitaciones para AI workloads, soporte de bases de datos, auto-scaling, tiempos de deploy, y developer experience. Las tablas de esta cápsula son las que consultas cuando necesitas elegir plataforma para un proyecto.

Por qué importa: Las comparativas genéricas online dicen "las tres son buenas." Eso no te sirve. Necesitas saber: ¿cuál tiene timeout más largo para AI? ¿Cuál soporta WebSockets para streaming? ¿Cuál es más barata para un MVP que corre 24/7? ¿Cuál escala a multi-region sin configuración compleja? Esta cápsula responde con números, no con opiniones.


Comparativa General de Features

Core Features

FeatureRenderRailwayFly.io
Deploy desde Git✅ GitHub, GitLab✅ GitHub❌ Solo via CLI/API
Deploy desde CLI❌ No hay CLI oficialrailway upflyctl deploy
Deploy desde Docker✅ Dockerfile✅ Dockerfile + Nixpacks✅ Dockerfile
Auto-deploy en push✅ Nativo✅ Nativo⚠️ Via GitHub Actions
Preview environments⚠️ Manual (PR previews en beta)✅ Nativo, automático⚠️ Manual con Machines API
Custom domains✅ Free (Starter+)✅ Hobby+✅ Free
SSL automático✅ Let's Encrypt✅ Let's Encrypt✅ Let's Encrypt
Health checks✅ Configurable✅ Configurable✅ Configurable
Logs✅ Dashboard + API✅ Dashboard + CLI✅ Dashboard + CLI
Metrics✅ CPU, RAM, requests✅ CPU, RAM, network✅ CPU, RAM, network
Teams/colaboración✅ Team plan✅ Pro plan✅ Organizations

Infraestructura

FeatureRenderRailwayFly.io
Regiones disponibles4 (Oregon, Ohio, Frankfurt, Singapore)1+ (auto-selección)30+ regiones
Multi-region❌ Una región por servicio❌ Una región por servicio✅ Nativo
Auto-scaling horizontal✅ Standard+ (manual)✅ Pro (automático)✅ Nativo (auto_start/stop)
Auto-scaling vertical❌ Plan fijo⚠️ Dinámico dentro de límites❌ VM fijo
Tipo de containerDocker containerDocker/Nixpacks containerFirecracker micro-VM
SSH a containerflyctl ssh console
Networking privado✅ Entre servicios del proyecto✅ Entre servicios del proyecto✅ WireGuard + IPv6 privado

Bases de Datos y Add-ons

Add-onRenderRailwayFly.io
PostgreSQL✅ Managed✅ Managed (plugin)✅ Managed (Fly Postgres)
Redis✅ Managed✅ Managed (plugin)✅ Via Upstash (managed)
MySQL✅ Managed (plugin)❌ (deploy propio)
MongoDB✅ Managed (plugin)❌ (deploy propio)
Object Storage❌ (usar S3)❌ (usar S3)✅ Tigris (S3-compatible)
Cron Jobs✅ Nativo✅ Nativo⚠️ Via Machines API
Background Workers✅ Nativo✅ Nativo✅ Nativo
Persistent Disk✅ Render Disk ($0.25/GB)✅ Volumes✅ Volumes ($0.15/GB)

Comparativa de Pricing

Free Tiers

DimensiónRender FreeRailway TrialFly.io Free
Coste$0$0 (+ $5 crédito)$0
Web services1 servicio, sleep 15 minHasta agotar $53 shared VMs
RAM512 MBVariable (según uso)256 MB per VM
CPU0.1 vCPUVariableshared-cpu-1x
PostgreSQL256 MB, 97 días retenciónIncluido en créditoNo incluido gratis
Redis25 MB, 97 días retenciónIncluido en créditoNo incluido gratis
Custom domains
DuraciónIndefinido (con sleep)Hasta agotar créditoIndefinido
Tarjeta de créditoNo requeridaNo requeridaRequerida (verificación)

Planes de Pago — Comparativa para AI App Típica

Escenario: FastAPI + OpenAI API, 1 vCPU, 1 GB RAM, corriendo 24/7:

ComponenteRender StarterRailway HobbyFly.io (shared)
Base mensual$7/mes (plan fijo)$5/mes (+ crédito)$0 (free tier VMs)
ComputeIncluido en plan~$20/mes (vCPU) + ~$10/mes (RAM)$1.94/mes (VM) + ~$6/mes (RAM extra)
PostgreSQL$7/mes (Starter)Incluido en uso$1.94/mes (VM Postgres)
Redis$7/mes (Starter)Incluido en uso$0 (Upstash free tier)
EgressIncluido$0.10/GB después de 100 GB$0.02/GB después de 100 GB
Total estimado~$21/mes~$25-30/mes~$10-15/mes

Pricing a mayor escala

Escenario: 2 vCPU, 4 GB RAM, PostgreSQL, Redis, corriendo 24/7:

ComponenteRender ProRailway ProFly.io Dedicated
Compute$85/mes~$60/mes~$37/mes
PostgreSQL$20/mes (Standard)Incluido~$15/mes
Redis$20/mes (Standard)Incluido~$5/mes
Total estimado~$125/mes~$80-90/mes~$57/mes

Pricing: Modelo de cobro

AspectoRenderRailwayFly.io
ModeloPlan fijo por servicioPay-per-use (CPU×tiempo + RAM×tiempo)Pay-per-use (VM×tiempo + RAM)
Predecibilidad✅ Alta — sabes el coste exacto⚠️ Media — depende del uso⚠️ Media — depende de VMs activas
OverageNo hay — limitado al planSe cobra según usoSe cobra según uso
FacturaciónMensualMensualMensual

Comparativa: Limitaciones para AI Workloads

Request Timeouts

PlataformaTimeout HTTPImpacto AI
Render30 segundos⚠️ Limitante para inferencia larga. Streaming obligatorio para respuestas > 30s
Railway5 minutos✅ Suficiente para la mayoría de AI workloads
Fly.ioConfigurable (default 60s)✅ Ajustable según necesidad

Memory Limits

PlataformaFreeMínimo pagoMáximo
Render512 MB512 MB (Starter)8 GB (Pro Plus)
RailwayVariable (~512 MB)Configurable32 GB (Pro)
Fly.io256 MB256 MB (shared)16 GB+ (dedicated)

WebSocket y Streaming

FeatureRenderRailwayFly.io
WebSocket⚠️ Starter+ (no en Free)✅ Soportado✅ Soportado
Server-Sent Events (SSE)✅ Soportado✅ Soportado✅ Soportado
Streaming tokens LLM⚠️ SSE funciona, WS limitado✅ Full support✅ Full support

Cold Start

PlataformaCon sleep habilitadoSin sleep
Render Free15,000-45,000msN/A (siempre sleep)
Render StarterN/A (siempre running)0ms
Railway (sleep)2,000-8,000ms0ms
Fly.io (auto-stop)300-2,000ms0ms
Fly.io (min=1)N/A (siempre running)0ms

Container Size y Build

AspectoRenderRailwayFly.io
Max image sizeSin límite documentadoSin límite documentado10 GB
Build timeout30 minutos30 minutosNo documentado (largo)
Build cache✅ Docker layer cache✅ Nixpacks cache (agresivo)✅ Docker layer cache
Build speedMedioRápido (Nixpacks)Medio

Comparativa: Developer Experience

Tiempo de Setup (primera vez)

PasoRenderRailwayFly.io
Crear cuenta1 min (GitHub OAuth)1 min (GitHub OAuth)2 min (email + tarjeta)
Primer deploy3-5 min (dashboard)2-3 min (CLI)5-7 min (CLI + config)
Custom domain5 min3 min5 min
Total setup~10 min~6 min~12 min

Workflow diario

AcciónRenderRailwayFly.io
Deploygit push (auto)git push o railway upflyctl deploy
Ver logsDashboard → Logsrailway logs o Dashboardflyctl logs o Dashboard
Agregar variableDashboard → Envrailway variables setflyctl secrets set
Agregar base de datosDashboard → New → PostgreSQLrailway addflyctl postgres create
EscalarDashboard → SettingsDashboard → Settingsflyctl scale count N
SSH al containerflyctl ssh console
Conectar a DB local❌ (copiar URL manual)railway connect postgresflyctl postgres connect

CLI Power

CapacidadRenderRailwayFly.io
CLI oficial❌ (solo API REST)✅ Completo✅ Completo
Deploy desde terminalrailway upflyctl deploy
Variables desde terminalrailway variablesflyctl secrets
Logs desde terminalrailway logsflyctl logs
DB connect desde terminalrailway connectflyctl postgres connect

Comparativa: Cuándo Elegir Cada Una

Decision Quick-Reference

¿Quieres simplicidad absoluta + pricing predecible?
    → Render

¿Quieres la mejor developer experience + prototipos rápidos?
    → Railway

¿Necesitas multi-region o baja latencia global?
    → Fly.io

¿Tienes equipo y necesitas preview environments?
    → Railway

¿Presupuesto mínimo y no te importa cold start?
    → Fly.io (free tier más generoso en CPU)

¿App AI con streaming de tokens?
    → Railway o Fly.io (mejor soporte WebSocket)

¿Enterprise, compliance, SLA garantizado?
    → Ninguna de las tres — usa AWS

Escenarios concretos para AI

EscenarioMejor opciónPor qué
MVP chatbot AI, 1 developerRailwayDeploy más rápido, CLI excelente
API de inferencia, equipo de 3RailwayPreview environments, add-ons
RAG app para empresa globalFly.ioMulti-region, baja latencia
Demo para investorsRenderPredecible, fácil de explicar
Proyecto personal, $0/mesFly.ioFree tier más generoso (3 VMs)
App con streaming largoFly.ioTimeout configurable, WS nativo
Startup early-stage, presupuesto $50/mesRailwayBuena relación DX/precio
App AI + PostgreSQL + RedisRailwayAdd-ons integrados, variables automáticas
Need to self-host LLMNingunaNecesitas GPU → RunPod, Lambda Labs

Tabla Resumen: The Big Picture

DimensiónRenderRailwayFly.ioAWS (Lambda)
FilosofíaSimplicidadDeveloper ExperienceEdge ComputingControl total
Deploy time3-5 min2-3 min5-7 min30-60 min
Free tierLimitado (sleep)$5 crédito3 VMs gratis1M requests/mes
Pricing modeloPlan fijoPay-per-usePay-per-usePay-per-use
Cost $$ (AI app)~$21/mes~$25-30/mes~$10-15/mes~$15-40/mes
Multi-region✅ (con config)
Request timeout30s5 minConfigurable15 min
WebSocketStarter+⚠️ (API GW)
Cold start15-45s (free)2-8s0.3-2s1-10s
CLI✅✅✅✅✅ (aws cli)
DatabasesPG, RedisPG, Redis, MySQL, MongoPG, RedisRDS, ElastiCache
ComplejidadBajaBajaMediaAlta
Vendor lock-inBajoBajoMedioAlto
GPU✅ (SageMaker)

Ejercicios Prácticos

Ejercicio 1: Matriz de evaluación personalizada

Crea una tabla de evaluación para TU caso de uso específico. Define 5 criterios con pesos y evalúa cada plataforma del 1 al 5.

Ver solución
# platform_evaluation.py

criteria = {
    "Coste mensual": 25,
    "Developer experience": 20,
    "Tiempo de deploy": 15,
    "Soporte AI (timeout, RAM)": 20,
    "Escalabilidad futura": 20,
}

scores = {
    "Render": {
        "Coste mensual": (3, "$21/mes — predecible pero no el más barato"),
        "Developer experience": (3, "Dashboard simple, no CLI"),
        "Tiempo de deploy": (4, "Git push → auto deploy"),
        "Soporte AI (timeout, RAM)": (2, "30s timeout es limitante"),
        "Escalabilidad futura": (3, "Horizontal scaling, pero single region"),
    },
    "Railway": {
        "Coste mensual": (3, "$25-30/mes — flexible pero menos predecible"),
        "Developer experience": (5, "CLI excelente, preview envs, add-ons"),
        "Tiempo de deploy": (5, "railway up — el más rápido"),
        "Soporte AI (timeout, RAM)": (4, "5 min timeout, hasta 32 GB RAM"),
        "Escalabilidad futura": (3, "Auto-scaling, pero single region"),
    },
    "Fly.io": {
        "Coste mensual": (4, "$10-15/mes — el más barato"),
        "Developer experience": (3, "CLI potente pero más setup inicial"),
        "Tiempo de deploy": (3, "flyctl deploy — medio"),
        "Soporte AI (timeout, RAM)": (4, "Timeout configurable, WS nativo"),
        "Escalabilidad futura": (5, "Multi-region nativo, edge"),
    },
}

print("=== Evaluación de Plataformas ===\n")
print(f"{'Criterio':<30} {'Peso':>4}  {'Render':>8} {'Railway':>8} {'Fly.io':>8}")
print("-" * 70)

totals = {"Render": 0, "Railway": 0, "Fly.io": 0}

for criterion, weight in criteria.items():
    print(f"{criterion:<30} {weight:>4}", end="")
    for platform in ["Render", "Railway", "Fly.io"]:
        score, _ = scores[platform][criterion]
        weighted = weight * score
        totals[platform] += weighted
        print(f"  {weighted:>6}", end="")
    print()

print("-" * 70)
print(f"{'TOTAL':<30} {sum(criteria.values()):>4}", end="")
for platform in ["Render", "Railway", "Fly.io"]:
    print(f"  {totals[platform]:>6}", end="")
print()

max_possible = sum(criteria.values()) * 5
print(f"\nMáximo posible: {max_possible}")
winner = max(totals, key=totals.get)
print(f"Ganador: {winner} ({totals[winner]}/{max_possible})")

Ejercicio 2: Benchmark de latencia comparativo

Ejecuta un benchmark que mida la latencia de health check y de inferencia en las tres plataformas simultáneamente.

Ver solución
# benchmark_platforms.py
import time
import requests
import statistics
from concurrent.futures import ThreadPoolExecutor

PLATFORMS = {
    "Render": "https://docusearch-ai.onrender.com",
    "Railway": "https://docusearch-ai-production.up.railway.app",
    "Fly.io": "https://docusearch-ai-fly.fly.dev",
}

NUM_REQUESTS = 10


def measure_endpoint(platform: str, url: str, endpoint: str, payload=None) -> list:
    latencies = []
    for _ in range(NUM_REQUESTS):
        start = time.time()
        try:
            if payload:
                resp = requests.post(f"{url}{endpoint}", json=payload, timeout=30)
            else:
                resp = requests.get(f"{url}{endpoint}", timeout=30)
            elapsed = (time.time() - start) * 1000
            if resp.status_code == 200:
                latencies.append(elapsed)
        except Exception:
            latencies.append(30000)
        time.sleep(0.5)
    return latencies


print("=== Health Check Latency ===\n")
print(f"{'Platform':<12} {'Avg':>8} {'Median':>8} {'P95':>8} {'Min':>8} {'Max':>8}")
print("-" * 56)

for platform, url in PLATFORMS.items():
    lats = measure_endpoint(platform, url, "/health")
    if lats:
        avg = statistics.mean(lats)
        med = statistics.median(lats)
        p95 = sorted(lats)[int(len(lats) * 0.95)]
        print(f"{platform:<12} {avg:>7.0f}ms {med:>7.0f}ms {p95:>7.0f}ms "
              f"{min(lats):>7.0f}ms {max(lats):>7.0f}ms")

print("\n=== Inference Latency ===\n")
print(f"{'Platform':<12} {'Avg':>8} {'Median':>8} {'P95':>8}")
print("-" * 40)

payload = {"question": "¿Qué es Python?", "max_tokens": 50}
for platform, url in PLATFORMS.items():
    lats = measure_endpoint(platform, url, "/ask", payload)
    if lats:
        avg = statistics.mean(lats)
        med = statistics.median(lats)
        p95 = sorted(lats)[int(len(lats) * 0.95)]
        print(f"{platform:<12} {avg:>7.0f}ms {med:>7.0f}ms {p95:>7.0f}ms")

Ejercicio 3: Cálculo de coste a 6 meses

Calcula el coste total de cada plataforma para tu app AI a 6 meses, incluyendo compute, databases, y APIs de LLM.

Ver solución
# cost_projection.py
MONTHS = 6

app_config = {
    "daily_requests": 3000,
    "avg_openai_cost_per_request": 0.002,
    "needs_postgresql": True,
    "needs_redis": True,
    "ram_gb": 1,
}


def render_cost(config: dict) -> dict:
    monthly = {
        "compute": 7,       # Starter plan
        "postgresql": 7,    # Starter plan
        "redis": 7,         # Starter plan
        "openai_api": config["daily_requests"] * 30 * config["avg_openai_cost_per_request"],
    }
    monthly["total"] = sum(monthly.values())
    return {k: round(v, 2) for k, v in monthly.items()}


def railway_cost(config: dict) -> dict:
    hours_per_month = 730
    vcpu_cost = 0.02778 * hours_per_month
    ram_cost = config["ram_gb"] * 0.01388 * hours_per_month
    hobby_base = 5
    hobby_credit = 5
    compute_net = max(0, vcpu_cost + ram_cost - hobby_credit)

    monthly = {
        "base": hobby_base,
        "compute": round(compute_net, 2),
        "postgresql": 0,    # Incluido en uso
        "redis": 0,         # Incluido en uso
        "openai_api": config["daily_requests"] * 30 * config["avg_openai_cost_per_request"],
    }
    monthly["total"] = sum(monthly.values())
    return {k: round(v, 2) for k, v in monthly.items()}


def flyio_cost(config: dict) -> dict:
    monthly = {
        "compute_vm": 1.94,                      # shared-cpu-1x (free si <3 VMs)
        "ram_extra": max(0, (config["ram_gb"] - 0.256)) * 6,
        "postgresql": 1.94,                       # Fly Postgres VM
        "redis": 0,                               # Upstash free tier
        "volume": 0.15,                           # 1 GB
        "openai_api": config["daily_requests"] * 30 * config["avg_openai_cost_per_request"],
    }
    monthly["total"] = sum(monthly.values())
    return {k: round(v, 2) for k, v in monthly.items()}


print(f"=== Proyección de Costes a {MONTHS} Meses ===\n")

for name, calc_fn in [("Render", render_cost), ("Railway", railway_cost), ("Fly.io", flyio_cost)]:
    monthly = calc_fn(app_config)
    print(f"--- {name} ---")
    for k, v in monthly.items():
        if k != "total":
            print(f"  {k:<20} ${v:.2f}/mes")
    print(f"  {'TOTAL mensual':<20} ${monthly['total']:.2f}/mes")
    print(f"  {'TOTAL ' + str(MONTHS) + ' meses':<20} ${monthly['total'] * MONTHS:.2f}")
    print()
## Output típico

--- Render ---
  compute              $7.00/mes
  postgresql           $7.00/mes
  redis                $7.00/mes
  openai_api           $180.00/mes
  TOTAL mensual        $201.00/mes
  TOTAL 6 meses        $1206.00

--- Railway ---
  base                 $5.00/mes
  compute              $25.28/mes
  openai_api           $180.00/mes
  TOTAL mensual        $210.28/mes
  TOTAL 6 meses        $1261.68

--- Fly.io ---
  compute_vm           $1.94/mes
  ram_extra            $4.46/mes
  postgresql           $1.94/mes
  volume               $0.15/mes
  openai_api           $180.00/mes
  TOTAL mensual        $188.49/mes
  TOTAL 6 meses        $1130.94

Nota: El coste de OpenAI API domina en todos los casos.
La diferencia entre plataformas (~$20/mes) es marginal
comparada con $180/mes de API.

Ejercicio 4: Documentar limitaciones para tu caso específico

Para cada plataforma, documenta las 3 limitaciones más impactantes para TU app AI específica y los workarounds que usarías.

Ver solución
# Limitaciones para DocuSearch AI (RAG + GPT-4o-mini)

## Render
1. **Timeout 30s:** Mi endpoint /ask tarda ~2-3s normalmente, pero queries
   complejas con mucho contexto RAG pueden tardar 10-15s. Si agrego
   streaming, podría tocar los 30s fácilmente.
   → Workaround: Implementar SSE streaming obligatorio para /ask

2. **No CLI:** Para hotfixes rápidos, necesito ir al dashboard.
   Deploy es por git push, lo cual está bien, pero gestionar variables
   y ver logs requiere el browser.
   → Workaround: Usar Render API con curl/scripts

3. **PostgreSQL Free: 97 días.** Si uso el free tier para desarrollo,
   pierdo datos cada ~3 meses.
   → Workaround: Starter ($7/mes) o exportar datos periódicamente

## Railway
1. **Pricing impredecible:** Con 3K requests/día, el coste varía según
   uso de CPU. Un spike de tráfico = factura inesperada.
   → Workaround: Configurar resource limits y alertas de billing

2. **Single region:** Mis usuarios están en Latinoamérica. Railway no me
   deja elegir región cercana (São Paulo no disponible directamente).
   → Workaround: Aceptar latencia extra o usar Fly.io para esos usuarios

3. **Trial $5 dura poco:** Para testing, los $5 se agotan en ~5-7 días
   con la app corriendo. Necesito Hobby ($5/mes) desde el día 1.
   → Workaround: Upgrade inmediato a Hobby

## Fly.io
1. **Volumes region-locked:** Si escalo a multi-region, cada región necesita
   su propio volume. No puedo compartir cache entre regiones.
   → Workaround: Usar Redis (Upstash) para cache compartido, volumes solo
     para datos locales

2. **Más setup inicial:** flyctl launch + fly.toml + secrets + deploy es
   más pasos que railway up.
   → Workaround: Scriptar el setup en un Makefile

3. **Shared CPU variable:** En shared, el rendimiento de CPU fluctúa.
   Embedding generation puede ser lenta en horas pico.
   → Workaround: Pre-generar embeddings offline, usar dedicated CPU ($31/mes)
     si el rendimiento es crítico

Troubleshooting

Problema 1: "¿Cuál es la más barata para mi caso?"

Solución: Depende del patrón de uso. Para una app 24/7 con 1 GB RAM:

  • Si quieres predecibilidad: Render ($21/mes con PG + Redis)
  • Si quieres mínimo absoluto: Fly.io (~$10/mes)
  • Si quieres balance DX/coste: Railway (~$25/mes)

En todos los casos, el coste de la API del LLM (OpenAI) domina la factura. La diferencia entre plataformas es marginal.

Problema 2: "Mi app necesita streaming y el timeout de Render no alcanza"

Solución: Usa SSE (Server-Sent Events) en Render — los timeouts de SSE son diferentes de HTTP requests normales. Alternativa: cambia a Railway (5 min timeout) o Fly.io (configurable).

Problema 3: "Necesito PostgreSQL con pgvector para embeddings"

Solución:

  • Render: pgvector disponible en plan Standard+ ($20/mes)
  • Railway: pgvector disponible con plugin PostgreSQL
  • Fly.io: Fly Postgres soporta pgvector (necesitas configurar la extensión)
  • Alternativa: Usar un servicio de vectores dedicado (Pinecone, Qdrant Cloud)

Problema 4: "¿Hay vendor lock-in?"

Solución: Mínimo en las tres. Tu app es un Docker container — funciona en cualquier plataforma que corra containers. Lo que te "ata" son:

  • Render: render.yaml (fácil de reemplazar)
  • Railway: railway.toml (mínimo)
  • Fly.io: fly.toml + volumes + multi-region config (más lock-in)

La migración entre plataformas es trivial: cambiar config file + redirigir DNS.


Resumen

  • Render = Simplicidad + pricing predecible. Ideal para demos y MVPs donde no quieres sorpresas. Limitado por timeout de 30s.
  • Railway = Mejor DX + prototipos rápidos. Ideal para developers que viven en la terminal. Pricing menos predecible.
  • Fly.io = Edge + multi-region + menor coste. Ideal para apps globales o presupuesto ajustado. Más setup inicial.
  • Para AI workloads: El timeout de Render (30s) es la limitación más impactante. Railway (5 min) y Fly.io (configurable) son más permisivos.
  • El coste de LLM APIs domina. La diferencia entre plataformas (~$10-20/mes) es irrelevante frente al coste de OpenAI ($100-500/mes).
  • Ninguna tiene GPU. Para inferencia local de modelos grandes, necesitas servicios especializados.
  • Vendor lock-in es bajo en las tres: tu app es un Docker container portable.
  • No hay "mejor" universal — hay mejor para TU caso, TUS constraints, TU stage.

Recursos Adicionales

  1. Render Pricing — Pricing actualizado de Render
  2. Railway Pricing — Calculadora de pricing Railway
  3. Fly.io Pricing — Pricing detallado de Fly.io
  4. PaaS Comparison 2026 — Dev.to — Comparativas de la comunidad
  5. Cloud Cost Handbook — Vantage — Referencia general de costes cloud
  6. OpenAI Pricing — Para contextualizar el coste real de tu sistema AI