forge
Clone forge-starter
No importyour app has no forge package
Four doorsenv · HTTP · proxy · generated files
Generated, not hand-writtenproductionize writes the prod shape

The black-box contract

your appimports no forge packageforge acts on it, and hosts for it① injected envFORGE_EVENTS_URLAUTH_SERVICE_TOKENFORGE_APP · FORGE_MCP_PUBLIC_URLreads② forge sidecar :3718POST /capabilities/:slug/app-events · /search · /authorize/notifications · /blobs · /groups …HTTPbrowser · AI host/auth/* · /mcp · /oauth/* · /connect/*③ same-originproxied through, unchanged④ generated filesDockerfile · compose.prod.yaml.env.prod.example · PROVISIONING.mdproductionize writes
Four doors and only four. Only the /auth/* rewrite is machine-generated; the other proxied prefixes are a documented contract the app adds itself.