What to replace
A Heroku app is usually more than one dyno. Before you pick a provider, list what you actually use: web processes, worker processes, scheduled jobs, Postgres, Redis, log drains and add-ons. European PaaS platforms cover web processes and databases well. Workers and long-running jobs are where the free options fall short.
Quick comparison
| Alternative | Country | Free option | Always on | Workers |
|---|
| Clever Cloud | France | Signup credit | Yes, while funded | Yes |
| Koyeb | France | One free web service | No, sleeps after 1 hour | Not on free |
| Scaleway Serverless Containers | France | Monthly quota | No, scales to zero | No |
| Hetzner Cloud + Coolify | Germany | None | Yes | Yes |
| alwaysdata | France | Free forever (1 GB) | Not documented | Scheduled tasks |
Choose by situation
You need a managed PaaS for a client or employer that asks for European hosting: choose Clever Cloud. It is built for the Heroku workflow and positions itself on sovereignty, with infrastructure partners such as OVHcloud, Scaleway, IONOS and Cloud Temple.
You want a free hobby deployment from a European company: choose Koyeb. Deploy from GitHub or a Docker image and accept that the service sleeps after an hour without traffic.
Your app is already containerized and traffic is low: Scaleway Serverless Containers can run it inside the monthly free quota, as long as it can tolerate cold starts and keeps state in an external database.
You want the lowest monthly bill for an always-on app: rent a Hetzner or OVHcloud VPS and install Coolify or Dokku. You get push-to-deploy, HTTPS and multiple apps on one server for a few euros, in exchange for running the server yourself.
Migration checklist
- Export your Heroku config vars and list every add-on.
- Move the database first, or point the new host at the existing database during the switch.
- Recreate the Procfile processes on the new platform: web, worker and scheduler.
- Deploy to a staging URL and test health checks, logs and background jobs.
- Switch DNS, then keep the Heroku app running until errors and logs look normal.