Deploy and scale web apps
Push your code and get a production-ready service with networking, scaling, and observability built in.
- GitHub stars12.4k
- Rated4.8/5
- SOC 2Type II
$ git push
Production
web-frontend
LiveRequests12.4k/mapi-backend
LiveCPU32%app-database
LiveStorage48 GBqueue-worker
LiveJobs2.1k/m
From repository to live in three steps
Connect your code, choose what to run, and let the platform take care of servers, clusters, and patches.
- Web service
- Static site
- Worker
- Cron job
- Postgres
- Cache
- 01Cloning repository from main
- 02Detected Node.js runtime
- 03Installing dependencies
- 04Build completed in 42s
- 05Health check passed
- 06Deploy is live
- Automatic TLS certificates
- Private networking
- Load-based autoscaling
- Daily database backups
- Zero-downtime deploys
- Preview environments
Bring any stack. We will run it.
Use your own framework, language, or container. Start from a template or deploy from your own repository.
Your whole stack, one git push away
Retire the duct tape. Run web services, Postgres databases, cron jobs, durable workflows, static sites, background workers, key-value caches, private services, WebSockets, and AI agents on one bill.
Every pull request gets its own production
Web, API, database, and workers boot from a snapshot in under a minute. Reviewers open a link instead of pulling a branch, and it all disappears on merge.
Preview environmentsPR #214
feature/checkout
4 checks passed
pr-214.preview
- webLive
- apiLive
- databaseLive
- workerLive
pr-214-checkout.example.com
Launch day is just another Tuesday
Instances follow CPU, memory, and queue depth from one to forty and back again, so a spike never pages you and a quiet night never bills you.
How autoscaling worksCompute plan
- 4 CPU · 8 GB RAM
- 16 CPU · 64 GB RAM
- 64 CPU · 512 GB RAM
- 4 CPU · 8 GB RAM
Instances
Jobs that survive crashes, deploys, and flaky APIs
Every step checkpoints its result. When one fails, only that step runs again, even if the worker restarted halfway through.
Explore workflows- 1@task(retries=3)
- 2async def summarize(doc_id):
- 3 doc = await fetch_doc(doc_id)
- 4 summary = await llm.run(doc)
- 5 await store(doc_id, summary)
- 6 return summary
Run 4812 · completed
- fetch_doc120 ms
- llm.runtimeout · retry 1/3
- llm.run2.4 s
- store38 ms
Rewind your database to any second
Continuous backups restore the moment before a bad migration into a fresh copy, while production keeps serving traffic.
Managed Postgresapp-db
Primary + 2 replicasRestore point
Oct 9 · 14:32:07
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
- Sun
Restored to app-db-copy in 38 s
Find the bad request before your users do
Logs, metrics, and traces land in one searchable stream from the first deploy, and forward to the tools you already use.
Observability- 10:12:00GET /api/orders 200 41ms
- 10:13:01POST /api/checkout 201 88ms
- 10:14:02worker: job 4812 completed
- 10:15:03POST /api/payments 502 1204ms
- 10:16:04GET /health 200 3ms
- 10:17:05GET /api/users/91 404 9ms
- 10:18:06deploy: build 912 is live
- 10:19:07POST /api/events 202 12ms
- 10:12:08GET /api/orders 200 41ms
- 10:13:09POST /api/checkout 201 88ms
- 10:14:00worker: job 4812 completed
- 10:15:01POST /api/payments 502 1204ms
- 10:16:02GET /health 200 3ms
- 10:17:03GET /api/users/91 404 9ms
- 10:18:04deploy: build 912 is live
- 10:19:05POST /api/events 202 12ms
Memory
By the numbers
Built to carry real traffic
- Developers
- M+
- Building and shipping on the platform every month.
- Uptime
- %
- Across managed databases and web services.
- Requests a month
- B
- Served from our edge network worldwide.
- Median deploy
- s
- From git push to a live, healthy service.
“We moved our whole platform in a weekend. Deploys that used to take an afternoon now finish before the coffee does, and our small team finally ships every day.”
Infrastructure as code
Infrastructure that lives in your repository
Keep services, databases, and shared variables in one versioned file that goes through code review like everything else.
- Spin up identical staging and preview stacks
- Roll back infrastructure with a git revert
- Share variables and secrets across services
1
services:
2
- type: web
3
name: storefront
4
runtime: node
5
buildCommand: npm ci && npm run build
6
startCommand: npm start
7
autoscaling:
8
minInstances: 2
9
maxInstances: 20
10
- type: worker
11
name: email-queue
12
runtime: python
13
startCommand: python worker.py
14
15
databases:
16
- name: storefront-db
17
plan: pro
18
highAvailability: true
1
# Install the CLI and log in
2
$ npm install -g @cloud/cli
3
$ cloud login
4
5
# Deploy the current branch
6
$ cloud deploy --service storefront
7
→ Building storefront from main
8
→ Build finished in 38s
9
✓ storefront is live
1
# Bring any container; the platform runs it
2
"tok-key">FROM node:22-alpine
3
"tok-key">WORKDIR /app
4
"tok-key">COPY package*.json ./
5
"tok-key">RUN npm ci --omit=dev
6
"tok-key">COPY . .
7
"tok-key">EXPOSE 3000
8
"tok-key">CMD ["npm", "start"]
The building blocks, already connected
Runtimes, storage, networking, and certificates that work together from day one.
Language runtimes
Tuned builds for Node.js, Python, Go, Ruby, Rust, and more, detected from your repository.
Infrastructure as code
Describe services, databases, and environment variables in one versioned file.
Isolated environments
Staging and preview environments never share data or networks with production.
Object storage
Coming soonKeep uploads and assets next to your services, with a simple SDK.
In-memory cache
Fast reads and writes for sessions, rate limits, and job queues.
WebSockets
Long-lived connections for chat, live dashboards, and collaborative features.
Edge caching
Static assets cached at edge locations close to your users.
Managed TLS
Certificates issued and renewed for every custom domain, wildcards included.
Global network
Run code a few milliseconds from every user
Pin each service and database to a region, replicate reads across continents, and serve static assets from the edge. Traffic finds the closest healthy region on its own.
- Compute regions
- 18
- Edge locations
- 310+
- To 95% of users
- <40 ms
Live routing
- us-west
San Francisco
18ms p50
- us-east
Virginia
14ms p50
- sa-east
São Paulo
23ms p50
- eu-west
London
9ms p50
- eu-central
Frankfurt
11ms p50
- ap-southeast
Singapore
16ms p50
- ap-northeast
Tokyo
21ms p50
- au-east
Sydney
27ms p50
Templates
Start from a working template
Production-ready starters for popular frameworks. Fork one and have it live in minutes.
- FrontendNext.js storefrontServer-rendered commerce site with a Postgres catalog.NodePostgresDeploy
- BackendFastAPI serviceTyped Python API with background jobs and migrations.PythonRedisDeploy
- AIAI chat agentStreaming chat agent with tool calls and durable memory.PythonWorkflowsDeploy
- FrontendAstro blogFast static site with content collections and edge caching.StaticCDNDeploy
- BackendGo microserviceLightweight HTTP service with private networking.GogRPCDeploy
- AIRAG pipelineDocument ingestion worker with vector search.WorkersPostgresDeploy
Security that ships with every service
Encryption, isolation, and access controls are on from the start, so security reviews begin from a strong baseline.
Private networking
Services talk over a private network, with no VPC to configure.
DDoS protection
Network-level protection on every service, with nothing to set up.
Compliance controls
Data residency, retention settings, and access reviews that support your audits.
Audit logs
A searchable record of every change to services, members, and keys.
Encryption at rest
Databases, backups, and secrets are encrypted by default.
Role-based access
Control who can view and change each service and resource.
Pricing
Simple pricing that grows with you
Pay per second for the compute you use, with clear limits and no hidden bandwidth fees.
Starter
For personal projects and prototypes.
$0/ month
- Free static sites
- One free web service
- Community support
Team
Most popularFor teams shipping production apps.
$25/ month
- Unlimited services
- Preview environments
- Autoscaling
- Email support
Enterprise
For organizations with advanced needs.
Custom
- SSO and audit logs
- Dedicated support
- Compliance reviews
- Custom contracts
FAQ
Questions, answered
Can't find what you're looking for? Our team usually replies within a few hours.
Contact support01Is there a free plan?
Yes. The Starter plan includes free static sites and one web service, which is enough for personal projects and prototypes.
02Which languages and frameworks are supported?
Node.js, Python, Go, Ruby, Rust, Elixir, PHP, and anything you can put in a container. We detect most frameworks automatically.
03How does autoscaling work?
Set a minimum and maximum instance count. We add or remove instances based on CPU and memory so you only pay for what runs.
04Can I migrate from another cloud?
Most teams migrate in a day. Import your repository, recreate environment variables, and restore your database from a dump.
05Where is my data stored?
In the region you choose for each service and database. Backups are encrypted and stay in the same region.
06Do you offer an uptime guarantee?
Team and Enterprise plans include a service level agreement with credits if we miss our availability target.
Changelog
Shipping every week
New features, improvements, and fixes, straight from the team.
- Oct 2026NewDurable workflows are generally availableRun long tasks with retries, timeouts, and step-level logs.
- Sep 2026ImprovedFaster builds with layer cachingRepeat builds are up to three times faster for Node and Python.
- Aug 2026NewRead replicas for PostgresAdd replicas in one click to scale read-heavy workloads.
- Jul 2026FixedSmoother zero-downtime deploysOld instances now drain open connections before they stop.