hobby()
Free
forever, no card
Side projects, demos and the thing you build on a Sunday.
- Unlimited deploys and previews
- Custom domain with HTTPS
- 100 GB bandwidth a month
- Community support
// forge 4.2 is out




Forge is a CLI and a cloud. Type forge deploy in any repo and get a live URL on 41 edge regions. No YAML, no Dockerfile.
$ npm i -g @forge/cli1.2M deploys a week from teams at
01 // features
Open a file. Every tab is a real part of Forge: config, previews, edge functions, rollbacks and secrets.
# forge.toml is optional. This is all of it.[project]name = "acme-shop"runtime = "node22" [build]command = "pnpm build"output = ".next" [edge]regions = ["fra", "iad", "sin", "gru"]min_instances = 0 # still a 12 ms cold start
forge.toml
Forge reads your lockfile and framework and picks the build for you. Add a file only when you want to overrule it.
$ git push origin feat/checkout remote: forge building preview for feat/checkoutremote: forge checks: lint, types, 212 testsremote: forge ready in 9.1sremote: forge -> feat-checkout.acme-shop.forge.runremote: forge comment posted on PR #482 # merge the PR and the same build goes to production
preview.sh
Push a branch and Forge builds an immutable preview, runs your checks and drops the link in the pull request.
// api/hello.ts runs in 41 regions. No config.export const config = { runtime: "edge" }; export default async function handler(req: Request) { const city = req.headers.get("x-forge-city"); return Response.json({ hello: city ?? "world" });} // $ forge deploy => /api/hello answers in 12 ms
api/hello.ts
Drop a file in api/ and it runs next to your users in 41 regions, with cold starts you will not notice.
$ forge deployments --limit 3 9f2c1ab main live 2 min ago 41d0e7c main ready 1 h ago c07b3aa main ready yesterday $ forge rollback 41d0e7c ok traffic moved to 41d0e7c in 240 ms # nothing was rebuilt. every deploy is kept.
rollback.sh
Every build is kept and addressable. Moving traffic back is a pointer swap, not a redeploy.
$ forge env add STRIPE_KEY --prod? value ******************************** ok encrypted with AES-256-GCM ok stored in fra, iad (EU + US) ok next deploy gets process.env.STRIPE_KEY $ forge env pull --dev ok wrote .env.local (12 keys)
secrets.sh
Encrypted at rest, scoped per environment, never printed in build logs. Pull them locally in one line.
02 // performance
12ms
Cold starts, p50. Your users never meet a sleeping server.measured across 41 regions, last 7 days
Cold-start latency, liveacme-shop / fra / one bar per request
cold start, ms (lower is better)
03 // integrations
Frameworks, databases, git hosts and the tools you already watch. Forge detects most of them on its own.
04 // pricing
No seats for viewers, no charge for preview builds, no surprise bandwidth bill. Upgrade from the CLI with forge upgrade.
hobby()
Free
forever, no card
Side projects, demos and the thing you build on a Sunday.
pro()
$20
per month, per project owner
For apps with users and a pager. Faster builds, more regions, real support.
team()
$14
per seat per month, from 3 seats
Shared projects, roles and the paperwork your security team asks for.
Students and open-source maintainers get Pro free. Run forge oss in your repo.
05 // changelog
We deploy Forge with Forge, about 30 times a day. The big ones land here and in forge changelog.
06 // docs
The quickstart is five minutes. Most people skip it, paste two commands and have a URL before the kettle boils.
$ npm i -g @forge/cli && forge deploy