Product

One platform for the whole delivery loop

From the first push to the tenth rollback, Flynn covers the parts of running software that teams otherwise stitch together by hand.

Build and deploy

Meet the repo where it is

Flynn does not ask you to repackage your application. Pick the input that matches how the team already works.

Buildpacks

git push and Flynn detects Go, Node.js, Python, Ruby, PHP, Java, Gradle, Scala, Clojure, or static sites. Point at a custom buildpack when you need one.

Dockerfile builds

Switch an app to the container stack and the same git push builds your Dockerfile on the cluster with BuildKit.

Pre-built images

Already build images in CI? Push one straight from your machine and Flynn turns it into a release with its entrypoint, command, and environment.

GitHub App deploys

Connect a repository, deploy a branch from the dashboard or CLI, auto-deploy on push, and optionally wait for GitHub Checks to pass first.

Run and scale

A release model you can reason about

Code, configuration, and process limits all flow through releases, so history and rollback work the same way everywhere.

Zero-downtime releases

The new release starts before the old one stops. If the new processes fail to come up, Flynn rolls back automatically. You can also roll back by hand at any time.

Independent process types

Declare web, worker, and any other process types, then scale each one separately. Web-facing process types get their own routes.

Runtimes

Assign small, medium, or large CPU and memory runtimes per process type. Operators can define their own runtimes or allow raw limits. Those amounts cap the process. Optionally reserve them on the host at schedule time.

Config as releases

Set environment variables and Flynn cuts a new release around the same code. Secrets stay out of the repository.

One-off and scheduled jobs

Run migrations or an interactive console using the app's release. With the scheduler plugin, add cron or interval jobs per app.

Persistent volumes

Attach a volume to a process type when it needs disk that survives a restart or a reschedule.

Route and secure

Traffic in, safely

A router on every host handles HTTP, HTTPS, and TCP, so you do not need another load balancer in front of the cluster.

Custom domains

Add the hostnames you own to any app, including the root domain of the platform.

Automatic HTTPS

Let's Encrypt certificates issued and renewed by the cluster, or bring your own. HTTP/2 comes with it.

Path, TCP, and sticky routes

Route a path to a different app, publish TCP services, and enable cookie-based sticky sessions where an app needs them.

Network isolation

Apps talk to each other through routes and to databases through injected credentials — never directly across the cluster network.

Data, observability, people

The rest of the platform

Datastores

Provision Postgres with one command; Flynn injects the connection URL. Add MariaDB, MongoDB, Redis, Kafka, or ClickHouse as plugins. See the catalog →

Logs, metrics, alerts

Follow logs from the CLI or dashboard, forward them to syslog, export host metrics over OpenTelemetry, and set threshold alerts by email or webhook.

Users, teams, roles

The dashboard signs people in and grants View, Deploy, Manage, or Admin on each app. Administrators can compose custom roles from fine-grained permissions.

The dashboard

A web UI installed as a plugin: create and deploy apps, scale, edit config, manage routes and resources, read logs, browse releases, schedule jobs, set alerts, and manage users and roles.

The CLI

One binary for macOS, Linux, and Windows. Apps, releases, scaling, env, routes, logs, resources, one-off jobs, export and import — and plugin commands appear automatically once a plugin is installed.

Next

See how shipping feels

Follow one app from push to production, including what happens when a release goes wrong.