v3.2.0 — now with edge runtimes

Ship from your terminal in 9 seconds.

Forge builds, previews and deploys your backend with zero config files. No dashboards, no YAML archaeology, no waiting on CI. Just forge deploy — and a URL.

Free for side projects · no credit card · works with Node, Go, Python, Rust

Everything is a command.

No web console detours. The whole deploy lifecycle lives where your hands already are — the prompt.

instant rollbacks

Every deploy is an immutable version. Bad release? You're back on the last good one before your pager finishes buzzing.

$ forge rollback --to v41
✓ traffic shifted to v41 in 0.8s
  v42 kept for diffing: forge diff v41 v42

preview every branch

Each branch gets its own isolated URL with production-shaped data. Share it in the PR, kill it on merge.

$ forge preview
✓ preview live (branch: fix/rate-limit)
  https://fix-rate-limit--api.forge.run

secrets, encrypted at rest

Set env vars from the CLI, scoped per environment. AES-256 at rest, injected at runtime, never written to disk.

$ forge env set STRIPE_KEY --prod
? paste value (hidden): ••••••••
✓ encrypted & stored prod only

zero config, real config

Forge detects your runtime, port and build step. When you outgrow defaults, one small forge.toml — not 400 lines of YAML.

# forge.toml — all of it, optional
runtime = "node22"
regions = ["iad1", "fra1"]
healthcheck = "/healthz"

Cold push → live URL. Timed, not vibes.

Median of 50 deploys of the same 142-module Express API, clean cache, from a laptop on hotel wifi. Reproduce it yourself: git clone forge-dev/bench.

test: cold deploy, node 22 api · 3.1 MB bundle lower is better · seconds to live URL
forge v3.29.2s
shipyard cloud41.6s
cloudlift (git-push CI)74.3s

note: warm deploys with a primed cache land in 3.9s. Incremental builds only ship changed modules.

Trusted by people who read the source.

Forge is open-core. The CLI is MIT-licensed and the deploy protocol is documented — audit every byte we ship.

24.1k stars 1.9k forks 412 contributors 38M deploys / mo 99.99% uptime, 12 mo

Replaced 340 lines of GitHub Actions with `forge deploy` in a Makefile. Our team of four ships 20+ times a day now and nobody has opened the old CI dashboard in weeks.

Portrait of Priya Raman Priya RamanStaff Engineer · Lintbase

The rollback story sold me. We shipped a bad migration at 2am, `forge rollback --to` had us green in under a second. That command has paid for the Pro plan a hundred times over.

Portrait of Marcus Halloran Marcus HalloranBackend Lead · Fernwave

I benchmarked it because I didn't believe the 9-second claim. Got 8.7s on a cold deploy of our Go monolith. From my terminal. On a train. I have nothing further, your honor.

Portrait of Dana Kowalczyk Dana KowalczykFounder · pgqueue.dev

Three commands to production.

If this takes you more than 60 seconds, open an issue and we'll send you stickers as an apology.

  1. Install the CLI

    One global binary, ~6 MB, no daemon. Homebrew and curl installers available too.

    $ npm i -g forge
  2. Link your project

    Forge sniffs your runtime, entrypoint and port. Answer two prompts, get a project ID.

    $ forge init
    ✓ detected node 22 · express · port 3000
  3. Ship it

    Build, upload, provision, route — one command, one URL. Add --watch to redeploy on save.

    $ forge deploy
    ✓ deployed → https://your-app.forge.run · 9.2s

Questions engineers actually ask.

Does it lock me in?

No. Your app is a standard OCI container under the hood — forge export hands you the Dockerfile and compose file it generated, and you can run it anywhere. The CLI is MIT-licensed. If we ever make you sad, leaving is one command.

What about my database?

Bring your own (we inject connection strings as encrypted secrets), or provision managed Postgres with forge db create. Preview branches get copy-on-write database forks, so your PR reviews run against real-shaped data without touching prod.

How is the free tier actually free?

Side projects get 100 deploys/month, 2 always-on services, and preview URLs — genuinely free, no card. We make money when teams need SSO, audit logs, more regions and concurrency. Free-tier users become our loudest advocates; that's the business model.

Can I run it in CI too?

Yes — forge deploy --token $FORGE_TOKEN is non-interactive and exits non-zero on failed healthchecks, so it drops into any pipeline. Most teams keep CI for tests and let Forge own the deploy step.

What happens when a deploy fails?

Traffic never shifts until the new version passes its healthcheck. A failed deploy leaves production untouched and prints the failing log lines straight to your terminal — no dashboard spelunking at 2am.

Monorepos?

First-class. Point forge init at any subdirectory, or define multiple services in one forge.toml. Deploys are per-service and only rebuild what changed — turborepo and nx caches are respected.

$ forge init — free for side projects.

Your next deploy could be 9 seconds away. No card, no sales call, no YAML. Uninstall in one command if we're wrong.

Get started free →

100 deploys/mo free · Pro from $19/seat · SOC 2 Type II