Ship infra like you ship product.
One client. Idempotent writes. Observability that matches your IDE.
API · Public beta
Ship infra like you ship product.
One client. Idempotent writes. Observability that matches your IDE.
Create a job. Get a receipt.
forge-quickstart.ts
import { Forge } from '@forge/sdk';
const forge = new Forge({ token: process.env.FORGE_TOKEN });
const job = await forge.jobs.create({
pipeline: 'ingest-v3',
input: { bucket: 's3://events/raw' },
idempotencyKey: 'run_2026_07_30',
});
console.log(job.id, job.status); // queued → running → done
Built for operators who live in git
CLI-first
forge run, forge logs, forge diff — same verbs as your deploy tool.
Idempotent by default
Retry safely. Duplicate keys are a no-op, not a double charge.
Traces included
Every job links to a span tree you can open in your APM.
Cut the filler
If a card doesn't change the decision, it doesn't earn the pixel.
Stack for scan
Hierarchy first. Decoration second. Decoration never.
From glue scripts to a contract.
Before
Cron + bash + hope. Silent failures at 3am. No shared receipt.
vs
With Forge
Typed jobs with receipts. Retries with budgets. One pane for status.
Ninety days. Zero paid ads.
1.2k
Active workspaces
48M
Jobs executed
99.95%
API success SLA
Your next deploy should feel boring.
Free tier · no card · docs that assume you can read TypeScript.