Quickstart
Go from signing in to a live service in about ten minutes. Setting up your account takes three steps — sign in, claim a handle, verify your phone — and drops you on an empty board. Deploying is the next thing you do, and it is deliberate: nothing ships until you ask for it.
Bring a GitHub repository, a container image, or a project directory on your machine. No credit card is required.
1. Sign in with Google
Open the Koo console and press Continue with Google. Google is the only sign-in method — there are no passwords on Koo.
2. Claim your handle
Your handle is your namespace on Koo: it names your account, and your public profile and any app pages you later publish live under it. Handles are unique and claimed first come, first served.
Type a handle — the form checks availability as you type — accept the Terms of Service, and press Continue.
3. Verify your phone
Koo calls your phone and reads a 6-digit code aloud. Enter your number, press Call me, pick up, and type the code. If the call doesn't reach you, the code screen offers Call again — and, where SMS is available, Text me a code to get the code by text instead.
After the code checks out, your recovery codes appear.
Recovery codes are shown once — copy them somewhere safe. Each works a single time if you lose access to your phone; if you lose the codes themselves, Regenerate recovery codes in your account's security settings mints a fresh set and invalidates the old one.
Press Finish setup.
4. Land on your board
Finishing setup takes you straight to a board. Koo creates your first project and its production environment for you and opens the production board — an environment canvas with one node per service, empty for now. The project gets a placeholder name you can change in project settings.
The board is where you come back to. In the console it is at /board, which always reopens the board you last had open.
5. Deploy your first service
Press New service on the board and pick how to deploy:
- GitHub Repository — connect GitHub and pick a repository. Koo builds it and deploys the result. See Deploy from Git. GitHub here is a repository connection only, not a sign-in.
- Docker Image — enter an image reference such as
ghcr.io/acme/api:latest. For a private image, add a registry username and access token. See Deploy a container. - Database — a Postgres or Redis database next to your services, wired in with a connection variable such as
DATABASE_URLorREDIS_URL. - Deploy via CLI — install the
kooCLI, then runkoo loginandkoo upin your project directory.koo upcreates and deploys the service from your terminal. See koo up.
Set the Port your service listens on inside its container.
Creates are staged: the new service appears as a ghost node until you press Deploy on the changes bar.
One web service plus one Postgres and one Redis database — 0.5 vCPU / 1 GiB each — are the always-free allowance on your first account, free forever, no card. See the free tier.
6. Watch the deploy
Open your web service's drawer and go to the Deployments tab. A deploy that builds from source moves through queued → building → built → applied; a deploy that ships an existing image skips the build statuses. See Deployments & rollback.
applied finishes the pipeline, not the boot. The service's health walks from In progress to Online as your container starts — see status.
7. Open your live URL
An exposed web service gets a public HTTPS URL once it is Online, shown on the service. Open it in your browser.
8. Read your logs
Open the drawer's Logs tab to stream your service's output live — the first place to look if the URL didn't return what you expected. See Logs.
9. Add a database
Press New service on the board and choose Database. Your web service reads it through its connection variable — DATABASE_URL for Postgres, REDIS_URL for Redis — and you can rename either to whatever name your code reads. See Postgres for what a database on Koo includes.
10. Publish your app page (optional)
Nothing you deploy is public on the showcase until you publish it. When you're ready to show your work, publish an app from the board: you get a public page at koo.io/@handle/app-slug — it exists only after you publish — with a description, media, comments, and upvotes.
Next steps
- Custom domains — put your own domain in front of your service, with automatic HTTPS.
- Variables — configuration at project, environment, and service scope.
- Teams & roles — invite collaborators with role-scoped access.