Your senior engineers are not
a translation layer.

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.

37%
fde-time-on-bespoke
11
median-wait-days
$340k
annual-cost-per-seat
↘ live · this page is the demo
~/faraday — forge.agent connected 0 tok
$ faraday-stack/forge v1.4.0 — connected to anthropic/claude-sonnet-4-5 via bedrock
$ snapshot: 27 modifiable elements registered
$ ready — ask the page anything.
try one
01
// thesis

An FDE's day is a thousand small asks, asked again and again, by people who don't share a vocabulary.

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.

02
// the loop

A real FDE backlog. Pick the one that's worth a senior engineer's afternoon.

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.

open 47
FDE-2841 14d
Hide priority column for Acme workspace
acme · senior eng · 4h
FDE-2843 21d
Add closed-lost filter on the pipeline page
northwind · senior eng · 6h
FDE-2847 backlog
Reorder onboarding steps for Globex tenants
globex · staff eng · 1d
FDE-2849 7d
Greeting → use AE name, not first name
initech · senior eng · 3h
in review 12
FDE-2811 9d
Hide forecast tab for read-only roles
acme · senior eng · 2h
FDE-2820 12d
Rename 'Deals' → 'Opportunities' for Stark
stark.io · senior eng · 1h
FDE-2829 5d
CSV export on reports view
globex · staff eng · 1d
shipped 8
FDE-2790 merged
Per-tenant theme color override
ironhand · staff eng · 2d
FDE-2799 merged
Custom KPI labels for Wayne Tech
wayne · senior eng · 6h
03
// signal layer

We listen everywhere your customers already complain.

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.

  • ingest > gmail · slack · granola · linear · zoom
  • dedupe > embedding-based, configurable similarity threshold
  • route > agent (cosmetic) → pr (structural)
  • scope > per-tenant override, never global
tail -f signal.log live · 0000
GM kara@northwind.com Can we hide the 'priority' column for our workspace?
SL #cs-acme they want the onboarding wizard reordered. demo tuesday.
GR Globex QBR · 2026-05-04 ask: dashboard should greet by AE name, not first name.
GM ops@initech.com any way to add a closed-lost filter on the pipeline?
SL #fde-rotation FDE-2849 still open. 11 days. 3h work.
GR Acme weekly · 2026-05-03 their AE wants the 'forecast' tab hidden for read-only roles.
04
// instrument

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.

app/page.tsx
typescript · 38 LoC
// 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.
05
// output

Engineers approve PRs. They no longer author them.

Every PR includes the original customer ask, the affected tenant scope, generated tests, and a written rationale. Reject and the agent retries with feedback.

# title agent diff time status
#1247 Reorder pipeline columns for Acme workspace complex-route +128 −44 2m ago open
#1246 Hide pricing field from read-only roles config-only +12 −0 9m ago merged
#1245 Add CSV export filter for Globex tenants complex-route +89 −12 27m ago open
#1244 Rename 'Deals' → 'Opportunities' for Stark.io cosmetic-only +4 −4 43m ago merged
#1243 Per-tenant KPI labels for Wayne Tech complex-route +72 −18 1h ago review