[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"seo-verification":3,"blog-leaving-heroku-vercel-vps-coolify-2026-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-leaving-heroku-vercel-vps-coolify-2026-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":154,"ctaBody":155,"ctaButton":156,"ctaUrl":157,"relatedPosts":158},371,"leaving-heroku-vercel-vps-coolify-2026",{"fr":12,"en":10,"ar":13,"es":14},"quitter-heroku-vercel-vps-coolify-2026","مغادرة-heroku-vercel-vps-coolify-2026","abandonar-heroku-vercel-vps-coolify-2026","Leave Heroku and Vercel for a VPS + Coolify in 2026","Heroku Pro vs VPS + Coolify break-even in 2026: 5 warning signals, step-by-step migration guide and Coolify \u002F Dokploy \u002F Kamal comparison.",10,0,false,"2026-09-23T00:00:00+00:00","2026-09-23T15:23:17+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"Deployment","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fquitter-heroku-vercel-vps-coolify-2026-poster.svg",{"categorySlug":33,"appSlug":34},"application-deployment-devops","coolify","Heroku removed its free tier in 2022 and has since raised prices: a single Pro dyno now runs around $50\u002Fmonth, and bills escalate quickly for a real stack. Vercel Pro charges $20\u002Fmonth per seat plus usage-based overages on Edge Functions. For agencies and independent developers, the break-even point is often reached well before exhausting the capacity of a modest VPS. This guide explains how to assess when to leave, choose the right deployment tool, and migrate without downtime.",[37,41,51,86,114,117,142,145,148,151],{"type":38,"title":39,"body":40},"h2","Heroku and Vercel: when the bill exceeds the value","Heroku was the reference for frictionless deployment for startups and agencies since the late 2000s. The platform absorbed infrastructure complexity in exchange for a predictable monthly subscription. Since the Salesforce acquisition and the removal of the free plan in November 2022, the value proposition has deteriorated: a Standard-1X dyno costs $25\u002Fmonth, a Standard-2X dyno reaches $50\u002Fmonth, and an application with a web dyno, a worker, and a Postgres add-on easily exceeds $100\u002Fmonth. Vercel followed a similar trajectory: the Pro plan is $20\u002Fmonth per developer, but overages on Serverless Functions, Edge Requests, and bandwidth accumulate quietly at month's end. In September 2026, a Hacker News thread titled 'Should I run plain Docker Compose in production in 2026?' (discussion #47962032, Sept 22 2026) gathered hundreds of comments, revealing a clear trend: mid-sized teams are returning en masse to self-hosting — not out of ideology but arithmetic. A $10-20\u002Fmonth VPS with Coolify installed reproduces 90% of the Heroku experience — Git-push deployment, rollbacks, environment variables, custom domains — without the usage-based pricing that penalizes growth. The question is no longer 'is it technically possible?' but 'when does the opportunity cost become unsustainable?'",{"type":42,"title":43,"items":44},"ul","5 signals that it's time to migrate",[45,46,47,48,49,50],"**PaaS bill > $80\u002Fmonth** — Beyond this threshold, an entry-level VPS + Coolify pays for itself in under two months. Add up all dynos, workers, and add-ons before comparing.","**Unpredictable scaling costs** — Usage-based platforms (bandwidth, invocations, Edge Requests) make monthly budgets hard to forecast; a VPS offers a fixed cost with scaling under your control.","**Vendor lock-in** — Proprietary Heroku buildpacks, non-portable Procfile, Salesforce ecosystem add-ons: if your stack can't run elsewhere without rewriting, that's a critical dependency signal.","**No root access** — Some needs (kernel tuning, kernel modules, low-level performance tools) are impossible on managed PaaS; a VPS gives full machine access.","**Imposed CI\u002FCD** — Heroku and Vercel favor their own build pipelines; on a VPS with Coolify, you connect GitHub Actions or GitLab CI on your own terms and trigger deployments via webhook.","**Degraded support** — Several users report longer Heroku support response times since the Salesforce transition; self-hosting your stack frees you from this dependency for common incidents.",{"type":52,"title":53,"headers":54,"rows":57},"comparison","Break-even: Heroku Pro vs VPS + Coolify",[5,55,56],"Heroku Pro","VPS Start + Coolify",[58,62,66,70,74,78,82],[59,60,61],"Monthly cost","~$50\u002Fdyno","99 DH\u002Fmonth",[63,64,65],"Scalability","Paid dynos per unit","RAM\u002FCPU adjustable on the fly",[67,68,69],"Buildpacks","Native Heroku buildpacks","Nixpacks (Heroku-compatible)",[71,72,73],"Root access","No","Yes",[75,76,77],"Zero-downtime deploy","Basic health checks","Built-in Coolify",[79,80,81],"Database add-ons","Heroku Postgres (paid)","Self-managed PostgreSQL free",[83,84,85],"Logs","Logplex (limited)","Full journald \u002F Docker access",{"type":52,"title":87,"headers":88,"rows":92},"Coolify vs Dokploy vs Kamal",[5,89,90,91],"Coolify","Dokploy","Kamal",[93,95,96,99,102,104,109],[94,73,72,72],"Heroku buildpacks (Nixpacks)",[75,73,73,73],[97,73,73,98],"Web interface","No (CLI)",[100,73,73,101],"Multi-server","Via SSHKit",[103,73,73,72],"Native Docker Compose",[105,106,107,108],"License","AGPL-3.0","MIT","MIT (Basecamp)",[110,111,112,113],"Server requirements","2 vCPU \u002F 2 GB RAM","1 vCPU \u002F 1 GB RAM","Ruby + Docker",{"type":38,"title":115,"body":116},"Coolify on VPS: the most Heroku-compatible option","Coolify is today the self-hosting tool closest to the Heroku experience, as open source under the AGPL-3.0 license. Its main feature is support for Nixpacks, the open source buildpack engine created by Railway that understands Heroku Procfiles and builds Docker images without you having to write a Dockerfile. In practice, a Node.js, Python (Django, FastAPI), Ruby on Rails, or PHP application deployed on Heroku can be imported into Coolify by pointing to the same Git repository, without modifying the code. The minimum recommended prerequisite from Coolify's official documentation is 2 vCPU and 2 GB RAM, which exactly matches the profile of an entry-level VPS. The web interface offers environment variable management per project, automatic deployments on Git push, one-click rollbacks, TLS certificates via Let's Encrypt, and custom domain management. Coolify also supports Docker Compose directly: if you already have a Compose stack for local development, you can deploy it as-is. Installing on a fresh VPS takes under ten minutes via the official script, and Coolify updates itself via its own built-in update mechanism in the interface. For teams that want to manage multiple servers from a single dashboard, Coolify has supported multi-server natively since version 4.",{"type":118,"title":119,"steps":120},"steps","Migrate a Heroku app to Coolify in 7 steps",[121,124,127,130,133,136,139],{"title":122,"body":123},"Install Coolify on your VPS","SSH into your VPS and run the official script: `curl -fsSL https:\u002F\u002Fcdn.coollabs.io\u002Fcoolify\u002Finstall.sh | bash`. The installation configures Docker, installs Coolify, and starts the interface on port 8000. Then open `http:\u002F\u002F\u003CVPS-IP>:8000` to create your admin account.",{"title":125,"body":126},"Create a project in Coolify","In the Coolify interface, click 'New Project' and give it the same name as your Heroku application. Then add a 'Resource' of type 'Application' within that project. Coolify will ask for the source: choose 'GitHub' or 'GitLab' depending on your repository, then authorize access via OAuth.",{"title":128,"body":129},"Connect the Git repository and choose the build pack","Select your repository and production branch. Coolify automatically detects the application type via Nixpacks. If your project has a `Procfile`, Coolify reads it and configures the web process. You can also force an existing Dockerfile or switch to Docker Compose mode if you have a `docker-compose.yml`.",{"title":131,"body":132},"Configure environment variables","Retrieve your variables from Heroku with `heroku config -a \u003Capp-name>`. Copy them into the 'Environment Variables' tab in Coolify. Pay special attention to `DATABASE_URL` — the Heroku format (`postgres:\u002F\u002Fuser:pass@host\u002Fdb`) is generally compatible, but if you're also migrating the database, update the URL to point to your self-managed PostgreSQL.",{"title":134,"body":135},"Launch the first deployment","Click 'Deploy'. Coolify builds the image via Nixpacks, pushes it to its internal registry, and starts the container with a health check. Monitor logs in real time in the 'Deployments' tab. If the build fails, the error is displayed line by line — look first for missing system dependencies (C libraries, native binaries) that Heroku buildpacks included implicitly.",{"title":137,"body":138},"Change DNS","In Coolify, add your custom domain in the application settings. Coolify automatically generates the TLS certificate via Let's Encrypt. Then update the DNS entry (A or CNAME) to point to your VPS IP. Propagation takes between a few minutes and 48 hours depending on the zone TTL.",{"title":140,"body":141},"Validate for 24-48 hours in parallel before deleting Heroku","Keep your Heroku application active for at least 24 to 48 hours after the DNS cutover. Test all critical features (payments, notifications, incoming webhooks, scheduled tasks) on the new instance. Only once validation is complete should you cancel the Heroku subscription and shut down the dynos.",{"type":143,"body":144},"tip","Keep your Heroku subscription active for 48 hours after the DNS migration to have an immediate rollback option. Don't cancel as soon as DNS points to the new server — third-party webhooks, scheduled tasks, and in-progress user sessions require validation over time before permanently cutting the old platform.",{"type":38,"title":146,"body":147},"Common mistakes during migration","Migrating from Heroku to a VPS with Coolify concentrates a few recurring pitfalls worth knowing in advance. The first is Procfile conversion: Heroku uses a `web: node server.js` format that Nixpacks reads, but if your application uses `release` processes (automatic migrations on deployment), these hooks need to be reconfigured in Coolify startup scripts or via a custom Docker entrypoint. The second pitfall concerns missing environment variables: Heroku automatically injects certain variables (`DYNO`, `PORT`, `HEROKU_APP_NAME`) that your code may read without having explicitly declared them — verify your application doesn't depend on these implicit variables. The third issue is health check timeout: Coolify defaults to `HEALTHCHECK --interval=30s --timeout=10s`, and a slow-starting application will be considered failed and restarted in a loop. Increase `--start-period` to 60 or 120 seconds for large applications. Finally, the `DATABASE_URL` format can differ: Heroku uses the `postgres:\u002F\u002F` scheme, while some modern libraries require `postgresql:\u002F\u002F` — a simple substitution in the environment variable resolves the issue. For databases, avoid migrating Heroku Postgres and application data at the same time as the infrastructure: first run the application on the new VPS still pointing to the Heroku database, then migrate the database in a second step using `pg_dump` and `pg_restore`.",{"type":38,"title":149,"body":150},"After migration — optimizations","Once the application is stable on the VPS, several optimizations achieve a reliability level exceeding what Heroku offered by default. The first priority is automated backups: configure daily VPS snapshots via your hosting provider's panel, and add application-level backups for PostgreSQL with a cron-scheduled `pg_dump` or through Coolify's interface (which includes a database backup manager since version 4.0). The second step is monitoring: install Uptime Kuma on the same VPS or a second one to monitor application availability with alerts via email, Telegram, or Slack. For more comprehensive system monitoring (CPU, RAM, disk, network), Beszel is a lightweight, modern alternative to Netdata designed for self-hosters. The third optimization concerns CI\u002FCD: rather than triggering deployments only from the Coolify interface, configure a webhook in your GitHub Actions pipeline to automate production deployments after tests pass. Coolify exposes a per-application webhook that accepts an HTTP `POST` with a token — wire it in as the last step of your CI workflow. This architecture delivers a complete pipeline: push → tests → build → automatic deployment → health check, entirely under your control with no dependency on an external platform.",{"type":38,"title":152,"body":153},"Migrating from Vercel — the SSR frontend special case","Vercel is designed for static and SSR frontend deployments, particularly Next.js of which Vercel is the editor. If you host a Next.js application on Vercel, Coolify supports Next.js via Nixpacks and can deploy the application in `next start` mode inside a Docker container. Migration is straightforward for projects that don't use Vercel Edge Functions or the distributed Edge CDN network. However, if your application relies heavily on Edge Functions — authentication logic, geo-based redirects, CDN-level A\u002FB testing — a 1:1 migration to Coolify isn't immediate, as Coolify deploys to a single server and doesn't replicate the distributed edge topology. In that case, two approaches are viable: use Dokploy for full-stack applications with fewer Vercel-specific dependencies, or adopt Kamal (from Basecamp) combined with Nginx for teams preferring a pure CLI approach without a web interface. For Nuxt.js, SvelteKit, or Astro frontends without Edge Functions, Coolify is the simplest migration: these frameworks generate either a static build or a standard Node.js server that Nixpacks detects and containerizes automatically. The savings on a Vercel Pro stack with multiple developers can exceed $60-80\u002Fmonth by moving to a single VPS with Coolify, without perceptible degradation for end users in the vast majority of use cases.","A VPS ready for Coolify today","Our cloud VPS are configured for Coolify in minutes: root access, dedicated IP, generous bandwidth. Stop paying per dyno.","See ServOrbit VPS","\u002Fvps-cloud",[159,177],{"id":160,"slug":161,"slugs":162,"title":166,"excerpt":167,"readTime":168,"views":169,"isPinned":19,"publishedAt":170,"updatedAt":171,"category":172,"categories":173,"featuredImage":29,"bgImage":30,"posterImage":175,"relatedSolution":176},41,"deploy-your-applications-with-coolify-on-a-vps",{"fr":163,"en":161,"ar":164,"es":165},"deployer-avec-coolify","نشر-تطبيقاتك-باستخدام-coolify-على-vps","desplegar-aplicaciones-con-coolify-en-un-vps","Deploy Your Applications with Coolify on a VPS","Deploy Coolify on a VPS: installation, HTTPS configuration, Git connection, deploying your first application, databases, backups, and troubleshooting.",9,1,"2026-05-10T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[174],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-coolify-poster.svg",{"categorySlug":33,"appSlug":34},{"id":178,"slug":179,"slugs":180,"title":184,"excerpt":185,"readTime":186,"views":18,"isPinned":19,"publishedAt":187,"updatedAt":171,"category":188,"categories":189,"featuredImage":29,"bgImage":30,"posterImage":191,"relatedSolution":29},40,"deploy-your-applications-with-kamal-on-a-vps",{"fr":181,"en":179,"ar":182,"es":183},"deployer-avec-kamal","انشر-تطبيقاتك-باستخدام-kamal-على-خادم-vps","desplegar-con-kamal","Deploy web applications with Kamal on a VPS","Complete Kamal v2 guide: installation, deploy.yml configuration, kamal-proxy, secrets, multi-server deployments, GitHub Actions CI\u002FCD and troubleshooting.",11,"2026-05-11T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[190],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-kamal-poster.svg",1790177319904]