Your roadmap can't ship every edge case.
Every vertical SaaS has the same long tail: "can you add a way to..." Most are real, most are specific to one customer, and most never make it onto the roadmap. Forge ships those features anyway — written, validated, and shipped per customer, scoped to what you've declared.
A customer asks for a feature you don't ship. Your trigger forwards their intent to Forge with subject context. The build-time agent writes the extension using only the tools you've exposed, validates every binding against your registry, and ships a working extension into the sandbox — scoped to one customer, with isolated secrets and state.
How isolation works →You keep the surface. We do the work you'd rather not maintain.
- → The trigger surface — chat, button, support-ticket pattern, scheduled job. Extension creation fires however your product wants.
- → The model provider — your key, or pay through us. We don't run models from scratch.
- → The product surface where extensions appear, and the review screen your customer sees before activation.
- → The capability surface — you declare what extensions can touch via the MCP / OpenAPI / GraphQL endpoints you expose.
- → The build-time agent — codegen, validate, retry, ship. The work most teams try to build themselves and stall on.
- → The capability registry — sources auto-discovered from your endpoints, plus HMAC-signed dispatch with per-subject headers. Forge never stores per-customer credentials.
- → The event-type catalog and event delivery into runtime extensions.
- → The sandboxed runtime, lifecycle API, secrets, state — per-extension isolation, one customer at a time. No shared globals, no cross-customer reads.
Three ways customers ask. Pick one — or run all three.
Forge doesn't care how extension creation gets triggered. Use the surface where customers already live in your product.
Customer types what they want. Forge ships it.
A single text input on a settings page. Your customer writes what they want, and Forge writes the extension, validates it, and ships it.
Customer iterates in chat until the extension is right.
Customer describes the extension in chat. Forge builds it. Customer says "no, only on weekdays." Forge rebuilds. Extensions are editable, not write-once.
Your assistant turns recurring asks into extensions.
Your assistant notices a customer is asking for something durable — an alert, a recurring report, a workflow — and offers to make it an extension. No new surface for the customer to learn.
Some extensions need a UI.
Not just background jobs. Forge can render extension UI at the surfaces your customers already use — forms, widgets, modals, custom views.
Custom data entry on host pages
Capture industry-specific fields — compliance metadata, vertical- specific attributes — inside the host's existing forms or as a standalone surface.
Contextual panels on record pages
Live data, computed status, mini-visualizations — embedded right where customers are already looking at the underlying record.
Step in at the moment of decision
Pop up before checkout, on save, on bulk actions. Confirm details, capture a missing field, run a check before something irreversible happens.
Alternative views of host data
Kanban over tickets, calendar over deliveries, grouped tables — your customer's existing data in a layout your roadmap didn't ship.