Free, with your coding agent

Stairway to Cloud Run

Exodus and your coding agent audit your app, show what it costs today and on Google Cloud Run, and move it there step by step. Or plan a new product for Cloud Run from scratch.

Cloud Run Superfan AwardGoogle Cloud Run Hackathon on Product Hunt

Launch or move your app to Google Cloud, fast

Hand one prompt to your coding agent. Exodus gives it the stairs to Cloud Run, on Google's own infrastructure, whether the app runs today or is still an idea.

Move an app

From Heroku, Railway, Render, Fly.io, Vercel or your own server. You see the bill there and on Cloud Run, and what changes on the way.

Design the architecture of a new app

Tell your agent the idea. Exodus designs how it runs on Cloud Run: the services, the database, the stack and the bill at launch.

You install once, your agent does the rest

  1. Install once

    Run it in your terminal, once per machine.

  2. Give this to your agent

    Sign in with Google, copy the prompt into your agent, and it audits the app on your machine.

  3. Check the report, then move

    Check the bill and the changes, and the agent moves the app.

Cloud Run has its own approach, and Exodus knows it

lumen-api
  • web$0.00Axum web processAlways on, on RailwayCloud Run serviceBilled per request, scales to zero
  • worker$0.00worker processWaits on Redis, always onCloud TasksOne request per job
  • clock$0.00clock process3 timers, always onCloud SchedulerStarts a job on time
  • Redis$0.00RedisThe job queue and the sessionsSigned cookiesSessions travel with the browser
  • uploads$0.02Files on Railway's diskA volume on the serviceCloud Storage bucketUploads go straight from the browser
  • Postgres$9.37PostgreSQLOn RailwayCloud SQLThe same instance, unchanged
lumen-api, a month$48.00$10.83Railway's bill, one total$37.17 a month less than today
  • As it runs today$48.00
  • Designed for Cloud Run$10.83

On Railway: the web, worker and clock processes run every hour beside Postgres, Redis and a volume. The bill gives one total, so no part has a price of its own.

Rebuilt for Cloud Run, each part runs only when there is work, and Redis is no longer needed.

On Cloud Run, traffic out is $1.44 a month; builds and secrets fit the free tier.

The four changes Exodus found in lumen-api

A worker waits on a Redis queueworker.rs:14Cloud Tasks
let (_, job): (String, String) = redis.blpop("jobs", 0.0).await?;

Cloud Run gives a copy CPU only while it answers a request, so a tokio loop waiting on Redis stalls, or under instance billing is paid for all month.

Each job becomes a POST to /tasks/<name>, an axum route on the same service, and the queue takes over retries and rate limits.

$0.00 on Cloud Run
Timers in a clock processclock.rs:12Cloud Scheduler
let mut hourly = tokio::time::interval(Duration::from_secs(3600));

Copies stop when idle and several can run at once, so a timer inside one fires late, never, or twice.

Cloud Scheduler starts a Cloud Run job at the same three times.

$0.00 on Cloud Run
Sessions kept in Redisapp.rs:27Signed cookies
.layer(SessionManagerLayer::new(RedisStore::new(pool)))

Once the queue leaves, sessions are Redis's only job, and Memorystore bills every hour, busy or not.

axum-extra's SignedCookieJar signs the session into a cookie, with its key in Secret Manager.

$0.00 on Cloud Run: Redis goes
Uploads written to local diskupload.rs:41A Cloud Storage bucket
tokio::fs::write(upload_dir.join(&name), &bytes).await?;

A copy's disk lives in its memory and is gone when the copy stops, and other copies never see it.

The browser puts the file straight into the bucket through a signed URL, and the service keeps only its key.

$0.02 on Cloud Run

Today is lumen-api's Railway bill as the sample report shows it, one total. Cloud Run is the report's estimate at Google's list prices in Belgium as of October 2026, for 1,200 visitors a day.

Exodus maps the whole move, and your agent makes it

  • Private until you share it.A link opens it read-only, and you can take the link back.
  • Markdown and JSON.For your team, your agent or the repository.
  • Every version kept.A new report says what changed since the last one.
lumen-apiReport 1Share

VerdictYou can move lumen-api to Cloud Run after 4 changes.

Railway today
$48.00
On Cloud Run
$10.83
Saved a year
$446.04
Cost
The next 12 months, +5% a month$10.83
Railway today $48.00
What to change
  1. A worker waits on a Redis queueworker.rs:14Must change
  2. Timers in a clock processclock.rs:12Must change
  3. Uploads written to local diskupload.rs:41Must change
  4. Sessions kept in Redisapp.rs:27Bills idle
Plan4 of 9 done
  • Dockerfile and a health routecac46de
  • Cron to Cloud Scheduler1442ece
  • Uploads to a bucketa467744
  • Worker to Cloud Tasks5d9c91d
  • Sessions to signed cookiesNext

Works with the agent and the language you already use

  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • Copilot

Any agent

Exodus is a command line your agent runs, so it works with the one you already use. It brings the instructions each agent reads.

  • Rust
  • TypeScript
  • Go
  • Kotlin
  • Elixir
  • Python
  • .NET
  • Java
  • Ruby
  • PHP
  • JavaScript
  • Any container

Any code

Anything that runs in a container runs on Cloud Run. Exodus picks the build for your stack: Google's buildpacks or a Dockerfile on the right base image.

exodus ask "why does my tokio worker stall on Cloud Run?"1. Background workers on Cloud Run - Why a queue worker breaks on Cloud RunA worker loop is not a request, so between requests its CPU is throttled to almost nothing and jobs sit in Redis.https://exodus.elim.io/blog/background-workers-with-cloud-tasks

Our process and experience

Exodus is built in Rust, the CLI included. Its knowledge base is the guides on our blog: your agent runs exodus ask and gets the passage that answers it, with the link to the guide, instead of guessing.

Cloud Run is Google's managed platform: you bring the code, Google runs the rest

Any

language in a container

Go, Node.js, Python, Java, .NET, Ruby and PHP deploy straight from source.

0 to 1,000

copies, by itself

It adds copies when traffic comes and removes them when it goes.

43

regions

Each with a 99.95% uptime commitment in writing.

100 ms

billing step

You pay for the time code runs. 2 million requests a month are free.

Your own servera VPS or a VM
  • Your code
  • Its container
  • ScalingResize the server when traffic growsYour job
  • HTTPS and load balancingRenew certificates, run a load balancerYour job
  • Restarts after a crashNotice it is down and restart itYour job
  • OS and security patchesPatch the system, then rebootYour job
  • Servers and data centersRented from the hostHost
Billed every hour, busy or idle
Cloud Runa managed platform
  • Your code
  • Its container
Google runs all of this
  • Scaling
  • HTTPS and load balancing
  • Restarts after a crash
  • OS and security patches
  • Servers and data centers
Billed only while it works, in 100 ms steps

Google is a Leader in the 2026 Gartner® Magic Quadrant™ for Cloud-Native Application Platforms, for the third year in a row.1

1 Gartner, Magic Quadrant for Cloud-Native Application Platforms, 3 August 2026; the recognition is for Google's platforms. Gartner does not endorse any vendor or product. GARTNER and MAGIC QUADRANT are trademarks of Gartner, Inc.

On Cloud Run an app usually costs less and is built to scale

Cloud RunHerokuRailwayRenderFly.io
You pay forSeconds your app is workingEvery hour a dyno is upCPU and memory used, plus a plan feeEvery hour an instance is upSeconds a machine runs
Stops when nobody uses itOn every serviceEco dynos onlyOptional sleep modeFree tier onlyAuto-stop
Adds copies under load by itselfEvery service, up to 1,000 requests per copyPerformance dynos onlyCopies set by handPro workspaces and upStarts machines you created
Regions to deploy in43124517
Uptime commitment99.95% on every serviceNot publishedEnterprise onlyEnterprise only99.9% from $2,500 a month
Try a release on part of the trafficAny percentage, back in one clickNot documentedNot documentedNot documentedCanary and blue-green deploys
Free every month2M requests, 180k vCPU-secondsNoneTrial, then $1 credit750 hours, sleeps when idleNone

From each platform's own documentation and pricing pages, October 2026.

On Cloud Run a sleeping app wakes in half a second

How long the first visitor waits when the app was stopped, median
Go3.2× faster
Cloud Run0.35 s
Fly.io1.10 s
JavaScript3.4× faster
Cloud Run0.70 s
Fly.io2.39 s

Schirmer et al., TU Berlin, "New Kids: An Architecture and Performance Investigation of Second-Generation Serverless Platforms", ACM TOIT 2026. Calls from Frankfurt, November 2025 to January 2026. Cloud Run measured as Cloud Run functions in europe-west3 with startup CPU boost off; Fly.io as Fly Machines with fly launch defaults. Data and notebooks.

On Cloud Run your app is better built, scales by itself and costs less

Pays only while it works. A server bills every hour of the day. Cloud Run bills the seconds your code answers a request, so a quiet night costs nothing and the free allowance covers a small app entirely.

Grows on its own. A spike, and Cloud Run adds copies in seconds, each taking up to 1,000 requests at once. When it passes, they go.

Close to your visitors. A request enters Google's network near the visitor and rides Google's own lines to your app.

Nothing to babysit. No server to log into and no certificate that expires on a Sunday. You deploy, and Google keeps the rest running.

Releases without fear. Every deploy is a revision. Show it to 5% of visitors, move everyone when it holds, go back in one click.

All of Google next door. Databases, files, queues, AI models and analytics in the same account and on the same bill, each one permission away.

Cloud Run costs little because you pay only while your code works

A Rust backend with its web app

  • Cloud Runfree
  • Traffic out$0.04
  • Database, files, secret$0.07
a month$0.11

A Slack bot with a task queue

  • Cloud Runfree
  • Cloud Tasksfree
  • Database, secret$0.07
a month$0.07

A full SaaS with Postgres

  • Cloud Run: API, worker, webfree
  • Postgres, smallest$9.40
  • Traffic, files, the rest$1.00
a month$10.40

Exodus is free.

The CLI is open source, Apache-2.0. The web cabinet is free.

  • The CLI and every command
  • Audits and reports, as many as you need
  • The plan and the move
  • The knowledge base
  • The check that keeps your app cheap afterwards

Moving something big?

Many services, a large database, no room for downtime. Our engineers have moved production apps to Cloud Run and will plan and run the move with your team.

Consult an expert

50+ guides to Cloud Run. What it costs, how to move, what breaks.

Every figure names its source. The CLI's exodus ask answers from the same guides.

Questions and answers

What is Exodus?

Exodus is a free web app and an open-source command line. With the coding agent you already use, it audits your app, shows what it costs today and on Google Cloud Run, lists what to change and in what order, and then moves it there step by step. Exodus runs no AI of its own: your agent writes the code.

How much does Exodus cost?

Nothing. The CLI is open source under Apache-2.0, and the web app, audits, reports, the plan and the knowledge base are free. You pay Google for Cloud Run and the other services your app uses, on your own account. The report estimates that bill from Google's list prices, with the date of the prices.

Do I need a Google Cloud account?

Not for the audit and the report: you sign in with Google, and your agent reads the repository on your machine. To move, you need a Google Cloud project with billing. Your agent works in it with your own gcloud, and a step only you can take, such as a login or a billing account, shows in the app with its steps. Exodus never signs in to Google Cloud.

Does Exodus see my code?

No. The CLI reads the repository on your machine and sends the findings, not the code: for example a worker on a Redis queue, Postgres 180 MB, a timer at src/bin/clock.rs:12. There is no GitHub sign-in and no GitHub app. A report stays private until you share its link.

Which coding agents does it work with?

Any agent that runs commands in a terminal: Claude Code, Codex, Cursor, Gemini CLI or Copilot. exodus init writes the instructions each one reads: skills for Claude Code, AGENTS.md for Codex and the others, rules for Cursor. We test with Claude Code and recommend it.

What if my app does not fit Cloud Run?

The report says so. Its verdict is move, move after changes, or stay, with the reason. Cloud Run runs containers that answer requests and scale to zero, so an app under steady heavy load, one that keeps state on its own disk, or one that serves no HTTP may be better where it is. The audit and the report cost nothing either way.

How do I stop using Exodus?

There is no subscription to cancel. Delete a project in its Settings tab, or your whole account in Settings under Danger zone: its reports, share links and CLI keys go with it. On your machine, delete the exodus binary from ~/.local/bin and the .exodus folder in your repository.

Built in Rust, open source and free

Use Exodus on our platform for free, or take the open-source CLI and run the whole move yourself.

Consult an expert

For a move that is hard to make alone: many services, a large database, no room for downtime. An engineer who has moved production apps to Cloud Run reads what you send and replies by email.

Optional.

What the app does and what it runs on today.

Optional. Anything that would change the plan: compliance, regions, a contract that ends.

Your email goes to our engineers and nowhere else.