Fabric Experiments
A governed, agent-native A/B testing platform — Git-first, signed manifests, lightweight SDKs.
Fabric Experiments is an experimentation platform for teams that want fast A/B test delivery without giving up governance, auditability, or trustworthy measurement.
It combines a Git-first authoring workflow, a hosted control plane, signed edge manifests, lightweight SDKs, warehouse-backed aggregation, and Fabric Harness-powered agents for operational guardrails and analyst readouts.
New here? Pick your path
🚀 60-second quickstart
Install fx, write one YAML file, run an end-to-end exposure → conversion
→ report cycle on your laptop. No account, no infrastructure.
🏷️ Marketing site (no app code)
Paste one <script> tag from the Fabric CDN, or self-host the same
bundle. Run CSS-only experiments declaratively from YAML, with
auto-anonymous IDs and dataLayer events.
🧑💻 Add the SDK to your app
TypeScript-first browser SDK. Programmatic treatment() / payload() /
metadata() API with full TS types and pluggable adapters.
📚 Coming from Mojito JS Delivery?
fx import-mojito converts your wave configs 1:1. Runtime parity for
divertTo, manualExposure, holdback, signed previews, and the
Trigger DSL.
Building something more advanced?
⚙️ All YAML fields
Complete schema reference: domOps, the Trigger DSL, sharedJs/sharedCss,
recipeSampleRate, metadata, and the holdback / sampleRate /
weight triad explained with examples.
🔌 Pluggable SDK internals
Custom storage adapters (cookie / localStorage / session / your own), decision adapters for bandits or feature-flag systems, exclusion predicates for bots and consent gating, and separate hooks for variant-code failures.
🌍 Production deployment
Provision Postgres, Vercel, Cloudflare, Databricks, and Temporal for a governed, multi-tenant install with audit forwarding and live-smoke gates.
📦 Self-host on any static CDN
fx publish --static writes a signed manifest + tag-loader bundle to a
directory. Upload to S3, R2, GCS — no manifest-worker required.
📊 Analyst tools
Analyst-ready warehouse roll-ups: standalone SQL, a self-contained dbt
project, and .Rmd notebooks for CR lift, Bayesian posteriors, and SRM χ².
What you get
- GitOps authoring — define experiments in YAML and apply them with the
fxCLI. - Hosted API — Next.js control plane with typed routes, org tenancy, audit events, manifests, and aggregate reporting.
- Studio UI — web admin for experiments, audit logs, kill actions, login/signup, and SAML settings.
- Better Auth — email/password, magic links, OAuth, organizations, API keys, admin, and 2FA.
- Postgres database — standard Postgres schema; Neon recommended for hosted/serverless staging.
- Cloudflare edge — manifest delivery from KV, exposure/conversion ingestion to R2, scheduled audit export worker, and this docs site.
- Warehouse aggregation — Databricks staging path plus local warehouse adapter for tests.
- Agents — SRM watcher and analyst workflows on Fabric Harness + Temporal.
High-level architecture
Current status
M5.1 — implementation-complete for staging, with live infrastructure
validation pending. Mojito-parity work is closed top to bottom: runtime
DSLs (DOM ops + triggers + previews), SDK pluggables (storage / decision /
exclusion / failure hooks), schema sugar (holdback / divertTo /
recipeSampleRate / metadata / sharedJs/sharedCss), tag-loader
drop-in, signed preview tokens, fx import-mojito, dbt + R analyst marts,
and fx publish --static for self-host.