{
  "slug": "vercel-to-coolify",
  "title": "Vercel Pro to self-hosted Coolify",
  "summary": "Coolify gives you a Vercel-shaped deploy experience on your own VPS. The seat price is only half the story — Vercel's usage billing is the other half.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "Vercel",
    "vendor_id": "vercel",
    "plan": "Pro",
    "plan_id": "pro",
    "amount": 20,
    "period": "month",
    "per_seat": true,
    "billed": "monthly",
    "seats": 3,
    "quote": "Pro Popular $20 /mo. ... Team Seats Developer seat 1 $20 / month",
    "caveat": "$20 per developer seat per month, which includes $20 of usage credit. Bandwidth and compute above that credit are billed on top, so real bills commonly exceed the seat price.",
    "source_url": "https://vercel.com/pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Coolify (self-hosted)",
    "repo": "coollabsio/coolify",
    "project": {
      "full_name": "coollabsio/coolify",
      "url": "https://github.com/coollabsio/coolify",
      "homepage": "https://coolify.io",
      "description": "An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 360+ one-click services on your own servers.",
      "stars": 63187,
      "forks": 5690,
      "open_issues": 589,
      "license": "Apache-2.0",
      "archived": false,
      "pushed_at": "2026-10-19T10:29:35Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "v4.4.6",
        "published_at": "2026-10-09T18:42:05Z",
        "url": "https://github.com/coollabsio/coolify/releases/tag/v4.4.6"
      },
      "days_since_release": 10,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:53:58.484Z"
    },
    "box": {
      "provider": "Vultr",
      "name": "vc2-2c-4gb",
      "id": "vultr:vc2-2c-4gb",
      "vcpu": 2,
      "ram_gb": 4,
      "disk_gb": 80,
      "bandwidth_tb": 3,
      "monthly_usd": 20,
      "url": "https://www.vultr.com/pricing/",
      "verified_at": "2026-10-19T10:53:42.716Z"
    },
    "storage": {
      "id": "backblaze-b2",
      "name": "Backblaze B2",
      "usd_per_gb_month": 0.00695,
      "egress": "free up to 3x stored volume per month, then $0.01/GB",
      "pricing_url": "https://www.backblaze.com/cloud-storage/pricing",
      "quote": "the amount of data stored per byte-hour over the last month at a rate of $6.95/TB/30-day",
      "verified_at": "2026-09-03",
      "verified_by": "human",
      "affiliate": true,
      "gb": 40,
      "monthly_usd": 0.28
    },
    "requirements": {
      "ram_gb": 4,
      "vcpu": 2,
      "disk_gb": 50
    },
    "box_alternatives": [
      {
        "provider": "Vultr",
        "name": "vc2-2c-4gb",
        "monthly_usd": 20,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.vultr.com/pricing/",
        "chosen": true
      },
      {
        "provider": "Linode",
        "name": "Linode 4GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.linode.com/pricing/",
        "chosen": false
      },
      {
        "provider": "DigitalOcean",
        "name": "2 vCPU · 4 GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.digitalocean.com/pricing/droplets",
        "chosen": false
      }
    ],
    "migration_hours": 10,
    "maintenance_hours_per_month": 1
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 3,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 60,
      "time_monthly": 0,
      "monthly": 60,
      "one_time": 0,
      "annual": 720
    },
    "alternative": {
      "cash_monthly": 20.28,
      "time_monthly": 50,
      "monthly": 70.28,
      "one_time": 500,
      "cash_one_time": 0,
      "time_one_time": 500,
      "annual": 843.34
    },
    "delta": {
      "monthly": -10.28,
      "upfront_to_switch": 500,
      "annual": -123.34
    },
    "break_even_month": null,
    "break_even_hourly_rate": 31.09,
    "totals": {
      "at_12_months": {
        "incumbent": 720,
        "alternative": 1343.34
      },
      "at_36_months": {
        "incumbent": 2160,
        "alternative": 3030.01
      },
      "at_horizon": {
        "incumbent": 2160,
        "alternative": 3030.01
      }
    },
    "savings": {
      "year_1": -623.34,
      "year_3": -870.01,
      "at_horizon": -870.01
    },
    "verdict": "stay"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 500
    },
    {
      "month": 1,
      "incumbent": 60,
      "alternative": 570.28
    },
    {
      "month": 2,
      "incumbent": 120,
      "alternative": 640.56
    },
    {
      "month": 3,
      "incumbent": 180,
      "alternative": 710.84
    },
    {
      "month": 4,
      "incumbent": 240,
      "alternative": 781.12
    },
    {
      "month": 5,
      "incumbent": 300,
      "alternative": 851.4
    },
    {
      "month": 6,
      "incumbent": 360,
      "alternative": 921.68
    },
    {
      "month": 7,
      "incumbent": 420,
      "alternative": 991.96
    },
    {
      "month": 8,
      "incumbent": 480,
      "alternative": 1062.24
    },
    {
      "month": 9,
      "incumbent": 540,
      "alternative": 1132.52
    },
    {
      "month": 10,
      "incumbent": 600,
      "alternative": 1202.8
    },
    {
      "month": 11,
      "incumbent": 660,
      "alternative": 1273.08
    },
    {
      "month": 12,
      "incumbent": 720,
      "alternative": 1343.36
    },
    {
      "month": 13,
      "incumbent": 780,
      "alternative": 1413.64
    },
    {
      "month": 14,
      "incumbent": 840,
      "alternative": 1483.92
    },
    {
      "month": 15,
      "incumbent": 900,
      "alternative": 1554.2
    },
    {
      "month": 16,
      "incumbent": 960,
      "alternative": 1624.48
    },
    {
      "month": 17,
      "incumbent": 1020,
      "alternative": 1694.76
    },
    {
      "month": 18,
      "incumbent": 1080,
      "alternative": 1765.04
    },
    {
      "month": 19,
      "incumbent": 1140,
      "alternative": 1835.32
    },
    {
      "month": 20,
      "incumbent": 1200,
      "alternative": 1905.6
    },
    {
      "month": 21,
      "incumbent": 1260,
      "alternative": 1975.88
    },
    {
      "month": 22,
      "incumbent": 1320,
      "alternative": 2046.16
    },
    {
      "month": 23,
      "incumbent": 1380,
      "alternative": 2116.44
    },
    {
      "month": 24,
      "incumbent": 1440,
      "alternative": 2186.72
    },
    {
      "month": 25,
      "incumbent": 1500,
      "alternative": 2257
    },
    {
      "month": 26,
      "incumbent": 1560,
      "alternative": 2327.28
    },
    {
      "month": 27,
      "incumbent": 1620,
      "alternative": 2397.56
    },
    {
      "month": 28,
      "incumbent": 1680,
      "alternative": 2467.84
    },
    {
      "month": 29,
      "incumbent": 1740,
      "alternative": 2538.12
    },
    {
      "month": 30,
      "incumbent": 1800,
      "alternative": 2608.4
    },
    {
      "month": 31,
      "incumbent": 1860,
      "alternative": 2678.68
    },
    {
      "month": 32,
      "incumbent": 1920,
      "alternative": 2748.96
    },
    {
      "month": 33,
      "incumbent": 1980,
      "alternative": 2819.24
    },
    {
      "month": 34,
      "incumbent": 2040,
      "alternative": 2889.52
    },
    {
      "month": 35,
      "incumbent": 2100,
      "alternative": 2959.8
    },
    {
      "month": 36,
      "incumbent": 2160,
      "alternative": 3030.08
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "switch",
      "break_even_month": 0,
      "savings_at_horizon": 1429.99
    },
    {
      "hourly_rate": 25,
      "verdict": "switch",
      "break_even_month": 17,
      "savings_at_horizon": 279.99
    },
    {
      "hourly_rate": 50,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -870.01
    },
    {
      "hourly_rate": 75,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -2020.01
    },
    {
      "hourly_rate": 100,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -3170.01
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -5470.01
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -7770.01
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "Vercel's edge network — this is the big one, and it is not something a single VPS replicates",
      "Instant global cache invalidation and automatic image optimisation",
      "Zero-config Next.js features that only exist because Vercel builds both sides",
      "Preview deployments that scale to zero for free"
    ],
    "you_gain": [
      "A fixed monthly bill instead of a usage bill that can spike without warning",
      "Free seats, and no per-seat charge for a viewer who just wants to see logs",
      "Any runtime you like, not only the ones the platform supports"
    ]
  },
  "caveats": [
    "If your traffic is global and latency-sensitive, one VPS is a genuine downgrade and no amount of savings fixes that. Put Cloudflare in front of it or stay on Vercel.",
    "The $20/seat Vercel figure excludes usage overages. If your bandwidth bill is the reason you are reading this, your real Vercel cost is higher and Coolify wins sooner.",
    "Coolify itself needs headroom on top of the applications you deploy. The 4 GB here is for Coolify plus a couple of small apps, not a full production estate."
  ],
  "category": "hosting-paas",
  "updated_at": "2026-10-19"
}