v2.4.0 · Edge Functions GA

Ship faster.
Sleep better.

Forge is the deploy platform built for engineers who care about speed and reliability. Push code, get a URL in seconds — globally distributed, instantly scalable.

$ npx forge deploy
24k
GitHub stars
300+
Edge PoPs
99.99%
Uptime SLA
forge — deploy — 80×24
~/myapp $ npx forge deploy
Detecting framework...
Next.js 14 detected
Building (23s)
Uploading 312 assets
Propagating to edge (300 PoPs)
Deployed in 31s
Live at https://myapp-a1b2c3.forge.sh
~/myapp $
Vercel Linear Stripe Resend PlanetScale Clerk Neon Turso Railway Fly.io

Engineered for zero-downtime teams

Every feature is a building block. Use just the ones you need, or let Forge run your entire delivery pipeline.

Edge Network — 300+ PoPs worldwide

Your code runs at the edge, not in a single data centre. Sub-20ms cold starts, automatic geo-routing, and built-in DDoS mitigation. Forge handles the infrastructure — you focus on the code.

Sub-20ms cold start Auto geo-routing HTTP/3 + QUIC Layer 7 WAF

Instant Rollbacks

Every deploy is immutable. Roll back to any point in your history with a single command.

Preview Deploys

Every pull request gets its own live URL. Share it with your team before you merge.

Real-time Logs

Stream logs from any deployment or function invocation directly in your terminal.

DDoS Protection

Layer 3/4/7 mitigation at the edge. Rate-limiting, bot scoring, and WAF included.

Zero-config CI

Push to any branch. Forge detects your framework and builds it — no YAML required.

Deploy from any language

Official SDKs for JavaScript, Python, and Go. A dead-simple REST API if you need to call Forge from anywhere else. Every endpoint is idempotent — safe to call from CI.

  • Full TypeScript types
  • Auto-retry with exponential backoff
  • Webhook events for every state change
  • OpenAPI 3.1 spec always in sync
deploy.js
import { ForgeClient } from '@forge/sdk';

const forge = new ForgeClient({
  token: process.env.FORGE_TOKEN,
});

const deploy = await forge.deployments.create({
  projectId: 'proj_xK9m2pQr',
  ref: 'main',
  env: {
    NODE_ENV: 'production',
    DATABASE_URL: process.env.DATABASE_URL,
  },
});

console.log(`Deployed: ${deploy.url}`);
// → https://myapp-a1b2c3.forge.sh
deploy.py
from forge import ForgeClient
import os

client = ForgeClient(token=os.environ["FORGE_TOKEN"])

deployment = client.deployments.create(
    project_id="proj_xK9m2pQr",
    ref="main",
    env={
        "NODE_ENV": "production",
        "DATABASE_URL": os.environ["DATABASE_URL"],
    },
)

print(f"Deployed: {deployment.url}")
# → https://myapp-a1b2c3.forge.sh
deploy.go
package main

import (
    "fmt"
    "os"

    forge "github.com/forge-dev/forge-go"
)

func main() {
    client := forge.NewClient(os.Getenv("FORGE_TOKEN"))

    dep, err := client.Deployments.Create(forge.DeployInput{
        ProjectID: "proj_xK9m2pQr",
        Ref:       "main",
        Env: map[string]string{
            "NODE_ENV":     "production",
            "DATABASE_URL": os.Getenv("DATABASE_URL"),
        },
    })
    if err != nil {
        panic(err)
    }
    fmt.Printf("Deployed: %s\n", dep.URL)
}
deploy.sh
curl -X POST https://api.forge.sh/v1/deployments \
  -H "Authorization: Bearer $FORGE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "proj_xK9m2pQr",
    "ref": "main",
    "env": {
      "NODE_ENV": "production"
    }
  }'

# Response:
# {
#   "id": "dep_7fHqzRmN",
#   "url": "https://myapp-a1b2c3.forge.sh",
#   "state": "BUILDING",
#   "createdAt": "2026-06-11T09:41:00Z"
# }

Your entire platform, one keystroke away

Press K anywhere in the Forge dashboard to instantly jump to any project, trigger a deploy, inspect logs, or run a CLI command — without ever reaching for the mouse.

Deploy Rollback View logs Env vars Team settings API tokens
No results found.
Deploy · main ⌘↵
Rollback to previous ⌘Z
Stream live logs ⌘L
All projects
Environment variables
Team settings

Built to stay up

Real numbers from our last 90 days. We publish our status page publicly so you can always verify.

Global Uptime 99.99%
99.99%
P99 Latency (ms) 18ms P99
18ms P99
Build Success Rate 98.7%
98.7%
CDN Cache Hit Rate 94%
94%
All systems operational
Last incident: 92 days ago
View status page →

Straightforward pricing

No per-seat fees. No surprise bills. Just flat-rate workspace pricing.

Hobby

Personal projects

Free
  • 3 projects
  • 100 GB bandwidth/mo
  • Preview deploys
  • Community support
  • Custom domains
Most popular

Pro

Professional teams

$20 /mo
  • Unlimited projects
  • 1 TB bandwidth/mo
  • Team access (5 seats)
  • Priority support
  • Environment secrets
  • Analytics

Enterprise

Scale & compliance

Custom
  • Unlimited everything
  • SLA 99.99%
  • SSO / SAML
  • Audit logs
  • Dedicated infra
  • Custom contracts

Plan comparison

Feature Hobby Pro Enterprise
Custom domains
Preview deploys
Rollbacks 3 days Unlimited Unlimited
Team seats 1 5 Unlimited
Bandwidth 100 GB 1 TB Custom
SSO / SAML
Audit logs
SLA 99.9% 99.99%

Common questions

Hobby is free forever. Pro is $20/mo (or $16/mo billed annually). You only pay once per workspace — adding more teammates does not increase your bill.

Yes. Run `npx forge migrate` in your project root. Forge detects your existing config (env vars, build commands, domains) and imports it automatically.

Every pull request and branch push triggers a fresh build on an isolated URL. Once you merge or close the PR, Forge automatically cleans up the environment.

Node.js (20, 22), Python (3.11, 3.12), Go (1.22+), Bun, Deno, and static sites. Edge Functions run on our V8 isolate runtime for sub-millisecond cold starts.

Yes — `npm i -g @forge/cli`. It covers deploys, logs, env, rollbacks and secrets. It also ships a local dev server that mirrors the edge environment exactly.
Free to start · No credit card

Start deploying in under 60 seconds

Import a Git repo, connect a domain, and go live. Forge handles the rest.

$ npx forge init