Skip to content

Go hosting from go.mod to live.

Push to GitHub. We read go.mod, pick your Go version, download your modules, build one program and start it. Every deploy waits for the new version to answer before visitors see it.

  • Go1.26 and 1.27
  • BuildsOne static program
  • Port8080, in PORT
  • Priced byWhat it uses

We read your code, so you don't write a build script.

Every build shows what we found and each command we ran, line by line. Anything we found, you can change in the app's settings.

FileWhat we do with it
go.modGo, and the version its go line asks for. We run go mod download, then go build.
main.goThe program to build, at the top of your code. Without one, the first folder of cmd/ with a main.go, like cmd/server.
go.sumYour modules' checksums, checked as they download, so the build uses exactly what you tested.
tanzahost.jsonOptional: the version, system packages, and the build and start commands.

One program, built the way Go likes it.

We build with go build -o bin/app and start ./bin/app. Your app listens on the port in PORT, which is 8080.

  • No C compiler needed

    Builds run with CGO_ENABLED=0, so the program carries everything it needs and starts in a moment.

  • Your Go, not a newer one

    GOTOOLCHAIN is local: the build never downloads another Go behind your back.

  • Several programs

    With more than one folder in cmd/, we build the first and say so. Set another in the build command.

Deploys that never take you down.

The new version starts beside the old one. Visitors switch only once it answers its health address, “/” unless you choose another.

  • If it fails, nothing changes

    A build or a “before going live” command that fails stops the deploy, and the version before it keeps serving your visitors.

  • Watched for five minutes

    If the new version stops by itself within five minutes, visitors go back to the previous one, and we tell you.

  • Roll back in one click

    The version before, deployed again without downtime.

Workers, tasks and a database next door.

Add what a real app needs beside its web process, each with the app's code and variables.

  • Up to 5 workers for queues and background jobs, and up to 10 scheduled tasks, as often as every minute, in UTC.
  • PostgreSQL with connection pooling, MySQL or Valkey in the same project: attaching one adds DATABASE_URL or REDIS_URL to your variables.
  • Logs live, a terminal in your browser, and the numbers for memory, processor and requests.

Go 1.26 and 1.27.

We use the newest version that meets your go.mod, or the one you pick in the app's settings. The next build uses it.

  • Go 1.27Recommended
  • Go 1.26Supported

Go supports its two newest releases, and so do we: when Go 1.28 arrives, Go 1.26 shows a warning and the date it's removed.

A Go app, priced in the open.

Say a Go API holds 0.05 GB of memory and uses 1% of a processor, awake all month. You pay for that use, hour by hour, from your wallet. The limits you set cost nothing by themselves.

reading today's prices

Reading the prices
Do I need to change my code?
Usually only one line: listen on the port in the PORT variable, like http.ListenAndServe(":"+os.Getenv("PORT"), mux).
My code uses cgo. Can it build?
Set CGO_ENABLED=1 in your variables and add the system packages it needs in tanzahost.json. The build log shows what's missing.
Does my app keep files it writes?
Only in its permanent folders, which you choose in the app's settings. Everything else is fresh on each deploy, so keep data in a database.
Can it sleep when nobody visits?
Yes, if you turn it on: after 15 minutes without visitors it sleeps, and the next visit wakes it. A Go program wakes in a moment.