Still evaluating floo? Start with the introduction. This page assumes you’ve decided to build.
Before you start
You need a project directory with source code, aDockerfile, and a GitHub repository. App names must be lowercase and hyphenated (e.g., my-saas-app). In examples below, replace owner/repo with your GitHub org and repo name.
The --app flag is optional when you’re inside a directory with floo.app.toml. Use it when running commands from elsewhere.
First-time setup
Sign in once, then three commands put you on a live URL.floo auth login opens a browser. New users create an account automatically. In headless/CI environments, use floo auth login --api-key <key>.
floo installs a GitHub webhook when you connect. After that, every git push triggers a build and deploy automatically.
Check your deploy succeeded:
Your app is live.
- Dev URL:
https://my-app-dev.on.getfloo.com - Every
git pushdeploys to dev. When it’s ready, runfloo releases promote --app my-appto publish tohttps://my-app.on.getfloo.com. - Watch live logs with
floo logs --app my-app --follow.
Ship Changes
Commit and push to GitHub. The deploy triggers automatically.Decision Table
Common Workflows
Add env vars and redeploy
Add a database
DATABASE_URL plus standard PG* component vars into your app’s environment, and writes .floo/services.lock. Commit the lock file:
DATABASE_URL. Postgres is fully isolated between dev and prod (separate schemas, separate credentials, both provisioned up front). For Redis (floo services add redis) and Storage (floo services add storage), see Managed Services → Dev and prod isolation for how environments share state.
Add a custom domain
Roll back a bad deploy
Debug a failing deploy
How floo works
The mental model. Config in the repo, GitHub-backed deploys, CLI-first.
Configuration
Understand floo.app.toml and how services are declared.