FaradayStack is an SDK and agent runtime that closes the forward-deployed loop. Customers reshape your UI by typing, engineers approve PRs instead of writing them.
Forward-deployed engineering was invented to bridge a gap: customers know their problem in their own words; the product knows it in code. Someone has to translate, in person, every day, for every account.
The job sounds strategic, but in practice it fragments. A column rename for one tenant, a hidden field for another, a copy tweak before a Tuesday demo, a filter promised on Slack last quarter. Each ask is small. None compose. The engineer context-switches between five customers, three repos, and a calendar that treats focus as optional.
The translation layer should not be a person. The repetitive 80%, cosmetic changes, tenant-scoped overrides, copy and config, should be a self-serve agent the customer talks to directly. The remaining 20%, real schema and workflow changes, should arrive on the engineer's desk as a reviewable PR, not a Zoom call and a Linear ticket.
FaradayStack exists because the FDE loop is the most expensive way ever invented to render a dropdown in a different order. We're closing it.
This is anonymized signal from three of our design partners. Median ticket is 4 hours of work and ships 11 days late. The agent eats the first column — your team only sees PRs from column three.
FaradayStack ingests Gmail threads, Slack channels, and Granola call notes. Each customer ask is normalized, deduped, and routed — to the agent if it's a UI override, to a PR if it's a real change.
Wrap any element in <Modifiable> and the agent can see it, target it, and rewrite it. Your engineers
own the schema; the agent owns the cosmetics.
// 1. Wrap your app once.
import { Modifiable } from "@faraday-stack/forge"
export default function App() {
return (
<Modifiable id="hero-headline">
<h1>Welcome back, {user.name}</h1>
</Modifiable>
)
}
// 2. Customer types. Your engineers don't.
// The agent emits applyText / applyStyle / applyHide tool calls
// against ids it sees in the page snapshot.Every PR includes the original customer ask, the affected tenant scope, generated tests, and a written rationale. Reject and the agent retries with feedback.