FlatRun vs Render

Render's workflow, without a bill per service.

FlatRun is an open source, self-hosted alternative to Render. Deploy web services, workers, cron jobs and databases from a repository, preview pull requests and roll back, on a server you control.

Open source, MIT licensed · Runs on any Linux server with Docker

Hosted platform

How FlatRun and Render differ.

Render deploys each piece of an app as its own service: a web service, a background worker, a cron job, a Postgres database. Each one has its own instance type and its own line on the bill, and a Blueprint file ties them together.

FlatRun deploys the whole app as one project from a Docker Compose file, on a server you choose. A worker or a database is another service in the same file, and adding one costs nothing beyond the server's capacity. Persistent data is a folder on that server, so services with data can still run more than one at a time and deploy without stopping first.

Side by side

FlatRun and Render, feature by feature.

FlatRunRender
Where apps runYour own serversRender's infrastructure
LicenseOpen source, MITProprietary, hosted
PricingFree. You pay for the serverWorkspace plan (Hobby free, Pro $25 a month) plus compute per service
Smallest paid serviceAny size the server allowsStarter: 512 MB and 0.5 CPU for $7 a month
Free tierNo limits beyond the serverFree web services spin down after 15 minutes idle; free Postgres expires after 30 days
App definitionDocker Composerender.yaml Blueprint; Docker Compose is not supported
Workers and cron jobsServices in the Compose file and scheduled tasksSeparate background worker and cron job services, each billed
Persistent dataFolders on the server, any servicePaid disks; a service with a disk runs one instance and stops before each deploy
Deploy on pushGitHub, GitLab and generic webhooksYes
Pull request previewsAn environment per pull request, removed when it closesPreview environments on Pro and above, removed when the pull request closes
RollbackDeploy any of the last 50 deploys againRedeploy a past build while its artifact is kept
Variable references${{ project.KEY }} and ${{ secret.NAME }}fromService and fromDatabase in a Blueprint, environment groups
DataPlain files you can copyRender disks and managed databases

Same ideas

Render's words, FlatRun's words

RenderFlatRunWhat it is on your server
Blueprint (render.yaml)Compose filedocker-compose.yml in the project directory
Web serviceService with a domainA service in the Compose file, routed by the proxy
Private serviceServiceReachable by name from the project's other services
Background workerServiceA service with no domain
Cron jobScheduled taskA command run on a schedule
Environment groupWorkspace secrets and referencesValues several projects read with ${{ secret.NAME }} or ${{ project.KEY }}
DiskData folderA bind mount beside the Compose file
Preview environmentPreview environmentA project per pull request, removed when it closes

Switching

Moving a Render app

  1. 01

    Install FlatRun

    Run the installer on an Ubuntu or Debian server. It sets up the agent, the dashboard and the proxy.

  2. 02

    Write the Compose file

    Turn each Render service in render.yaml into a service in docker-compose.yml: the web service, its workers, Postgres and Key Value. Keep data in folders next to the file.

  3. 03

    Connect the repository

    Create a project from the repository and branch. Pushes deploy it, and pull requests get previews.

  4. 04

    Copy data and point the domain

    Restore the Postgres dump, paste the variables, seal the secrets, and update DNS. FlatRun issues the certificate.

Choose FlatRun when

  • Your app has several services and paying for each one adds up.
  • Services with data need more than one instance or deploys without downtime.
  • You already describe the app with Docker Compose.
  • Code and data must stay on hardware you choose.

Choose Render when

  • You do not want to run or patch a server at all.
  • You want managed Postgres with backups and failover run for you.
  • A static site on a global CDN is most of what you deploy.

Questions about Render.

Can FlatRun run my render.yaml?

Not directly. FlatRun deploys Docker Compose, so each service in the Blueprint becomes a service in a Compose file. Builds from a Dockerfile work as they did on Render.

Does anything spin down on FlatRun?

Only if you ask it to. A project can sleep after a number of idle minutes and wake on the next request; otherwise it keeps running.

What replaces Render's managed Postgres?

A Postgres service in the project, or a shared database server that several projects use. Backups are scheduled from FlatRun to local disk or any S3-compatible store.

Render details come from Render workspace plans , Render free instances , Render disks , Render preview environments , Render rollbacks and Render Blueprint reference . FlatRun details are in the documentation.

More comparisons

Star us on GitHub