| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/splitstream-web/.next/server/app/docs.segments/ |
Upload File : |
1:"$Sreact.fragment"
2:I[79404,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"default"]
3:I[88287,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"default"]
4:I[74895,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"default"]
5:I[4561,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],""]
6:I[70805,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"default"]
f:I[52576,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"default",1]
:HL["/_next/static/chunks/002zte3riz0h6.css","style"]
0:{"P":null,"c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/002zte3riz0h6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3u-4v10_yuvs8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/31jk64s9j6agx.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":[["$","$L2",null,{}],["$","main",null,{"className":"mx-auto max-w-6xl px-6 py-10","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"border-t border-(--color-paper-dim) mt-20","children":["$","div",null,{"className":"mx-auto flex max-w-6xl items-center justify-between px-6 py-8 text-sm text-(--color-ink-dim)","children":[["$","div",null,{"children":["Splitstream is a portfolio demonstration by"," ",["$","a",null,{"href":"https://philiprehberger.com","children":"Philip Rehberger"}],"."]}],["$","div",null,{"className":"flex flex-wrap gap-4","children":[["$","a",null,{"href":"https://github.com/philiprehberger/splitstream","children":"GitHub"}],["$","$L5",null,{"href":"/pricing","children":"Pricing"}],["$","$L5",null,{"href":"/downloads","children":"Downloads"}],["$","$L5",null,{"href":"/status","children":"Status"}],["$","$L5",null,{"href":"/about","children":"About this demo"}]]}]]}]}],["$","$L6",null,{}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","div",null,{"className":"grid grid-cols-1 gap-10 md:grid-cols-[220px_1fr]","children":[["$","aside",null,{"className":"md:sticky md:top-6 md:self-start text-sm","children":["$","nav",null,{"className":"space-y-6","children":[["$","div","Get started",{"children":[["$","div",null,{"className":"text-xs font-semibold uppercase tracking-wider text-(--color-ink-dim)","children":"Get started"}],["$","ul",null,{"className":"mt-2 space-y-1.5","children":[["$","li","/docs",{"children":["$","$L5",null,{"href":"/docs","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Overview"}]}],["$","li","/sdks",{"children":["$","$L5",null,{"href":"/sdks","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"SDKs"}]}],["$","li","/reference",{"children":["$","$L5",null,{"href":"/reference","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"API reference"}]}]]}]]}],["$","div","Concepts",{"children":[["$","div",null,{"className":"text-xs font-semibold uppercase tracking-wider text-(--color-ink-dim)","children":"Concepts"}],["$","ul",null,{"className":"mt-2 space-y-1.5","children":[["$","li","/docs/concepts/bayesian-inference",{"children":["$","$L5",null,{"href":"/docs/concepts/bayesian-inference","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Bayesian inference (calibrated)"}]}],["$","li","/docs/concepts/sticky-assignment",{"children":["$","$L5",null,{"href":"/docs/concepts/sticky-assignment","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Sticky assignment"}]}],"$L7","$L8","$L9","$La"]}]]}],"$Lb"]}]}],"$Lc"]}]]}],{"children":["$Ld",{},null,false,null]},null,false,null]},null,false,null],"$Le",false]],"m":"$undefined","G":["$f",["$L10"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d4p1Nsp7dnkNrIm-L0oJl"}
11:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"OutletBoundary"]
12:"$Sreact.suspense"
14:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"ViewportBoundary"]
16:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"MetadataBoundary"]
7:["$","li","/docs/concepts/bucketing",{"children":["$","$L5",null,{"href":"/docs/concepts/bucketing","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Bucketing"}]}]
8:["$","li","/docs/concepts/peeking",{"children":["$","$L5",null,{"href":"/docs/concepts/peeking","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Peeking discipline"}]}]
9:["$","li","/docs/concepts/srm",{"children":["$","$L5",null,{"href":"/docs/concepts/srm","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Sample Ratio Mismatch"}]}]
a:["$","li","/docs/concepts/mutex-groups",{"children":["$","$L5",null,{"href":"/docs/concepts/mutex-groups","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Mutex groups"}]}]
b:["$","div","Pair with Pennant",{"children":[["$","div",null,{"className":"text-xs font-semibold uppercase tracking-wider text-(--color-ink-dim)","children":"Pair with Pennant"}],["$","ul",null,{"className":"mt-2 space-y-1.5","children":[["$","li","/with-pennant",{"children":["$","$L5",null,{"href":"/with-pennant","className":"block rounded px-2 py-1 text-(--color-ink) no-underline hover:bg-(--color-paper-dim)","children":"Joint quickstart"}]}]]}]]}]
c:["$","article",null,{"className":"prose","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]
d:["$","$1","c",{"children":[[["$","h1",null,{"className":"text-3xl font-bold","children":"Splitstream docs"}],["$","p",null,{"children":["Splitstream is the experimentation half of a feature-rollout pair. Pennant decides ",["$","em",null,{"children":"whether"}]," a feature ships. Splitstream decides"," ",["$","em",null,{"children":"which variant"}]," a user sees and ",["$","em",null,{"children":"whether the variant moved the metric."}]," The two ship a joint quickstart via the"," ",["$","$L5",null,{"href":"/with-pennant","children":"growth wrapper"}],"; the rest of this section explains the load-bearing pieces of Splitstream itself."]}],["$","h2",null,{"children":"The defaults are calibrated, not asserted."}],["$","p",null,{"children":["The most important thing to read first is"," ",["$","$L5",null,{"href":"/docs/concepts/bayesian-inference","children":"/docs/concepts/bayesian-inference"}],". The plan's draft thresholds (",["$","code",null,{"children":"0.95 / 1,000 / 15 min"}],") delivered ",["$","strong",null,{"children":"66% empirical false-positive rate"}]," in our null-effect simulation. The calibrated tuple is"," ",["$","code",null,{"children":"0.995 / 20,000 / 240 min"}],"; that's the default every new experiment inherits. Lowering thresholds without re-running the simulation re-inflates the false-positive rate."]}],["$","h2",null,{"children":"What the docs cover"}],["$","ul",null,{"children":[["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/bayesian-inference","children":"Bayesian inference"}]," ","— the calibration table and why your prior intuitions about peeking are wrong."]}],["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/sticky-assignment","children":"Sticky assignment"}]," ","— sticky-forever, mid-experiment weight-change semantics, and the force-rebucket tombstone story."]}],["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/bucketing","children":"Bucketing"}]," — the hash function and the cross-SDK corpus that guards drift."]}],["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/peeking","children":"Peeking discipline"}]," — why every dashboard open is logged and how the audit log reads."]}],["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/srm","children":"Sample Ratio Mismatch"}]," — the chi-squared monitor that catches bucket-pipeline bugs."]}],["$","li",null,{"children":[["$","$L5",null,{"href":"/docs/concepts/mutex-groups","children":"Mutex groups"}]," — mutually exclusive experiments, forward-only semantics, and the SELECT FOR UPDATE race protection."]}]]}],["$","h2",null,{"children":"Where to start writing code"}],["$","p",null,{"children":["Five-line samples per stack live on the"," ",["$","$L5",null,{"href":"/","children":"home page"}],". Full SDK references and install instructions are on ",["$","$L5",null,{"href":"/sdks","children":"/sdks"}],". The API surface is rendered inline at"," ",["$","$L5",null,{"href":"/reference","children":"/reference"}]," via Scalar."]}]],null,["$","$L11",null,{"children":["$","$12",null,{"name":"Next.MetadataOutlet","children":"$@13"}]}]]}]
e:["$","$1","h",{"children":[null,["$","$L14",null,{"children":"$L15"}],["$","div",null,{"hidden":true,"children":["$","$L16",null,{"children":["$","$12",null,{"name":"Next.Metadata","children":"$L17"}]}]}],null]}]
10:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/002zte3riz0h6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
15:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
13:null
17:[["$","title","0",{"children":"Docs — Splitstream"}],["$","meta","1",{"name":"description","content":"Production-shaped A/B testing platform: sticky bucketing, mutex experiment groups, Sample Ratio Mismatch detection, guardrail metrics, an Octane carve-out for the hot path, and a Bayesian stats engine whose decision rule is empirically calibrated — not asserted."}]]