| 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/ |
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"]
12: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":["","about"],"q":"","i":false,"f":[[["",{"children":["about",{"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,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","article",null,{"className":"prose","children":[["$","h1",null,{"className":"text-3xl font-bold","children":"About this demo"}],["$","p",null,{"children":[["$","strong",null,{"children":"Splitstream is a portfolio demonstration."}],"It is not a hosted service, it is not for production traffic, and there is no SLA. Treat the live URL the way you'd treat a static demo of an infrastructure product — click around, read the docs, run the SDKs in a test app. Don't route real users through it."]}],["$","h2",null,{"children":"What this is for"}],["$","p",null,{"children":["Splitstream demonstrates that the same architect — Philip Rehberger — can ship the ",["$","em",null,{"children":"whole"}]," experimentation surface a growth team expects, not just an API:"]}],["$","ul",null,{"children":[["$","li",null,{"children":"Variant assignment with sticky bucketing and mutex experiment groups."}],["$","li",null,{"children":"Event ingest with COPY-based batching, Redis-buffered backpressure, and DLQ."}],["$","li",null,{"children":["A Bayesian stats engine with ",["$","em",null,{"children":"empirical"}]," calibration — 360,000 null-effect simulations live in the repo at"," ",["$","code",null,{"children":"stats/calibration_results.json"}],"."]}],["$","li",null,{"children":"SRM detection and guardrail metrics."}],["$","li",null,{"children":"An admin with a peek-event audit log (because the platform's credibility lives or dies on methodological discipline)."}],"$L7","$L8"]}],"$L9","$La","$Lb","$Lc","$Ld","$Le"]}],null,"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d4p1Nsp7dnkNrIm-L0oJl"}
14:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"OutletBoundary"]
15:"$Sreact.suspense"
18:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"ViewportBoundary"]
1a:I[51858,["/_next/static/chunks/3u-4v10_yuvs8.js","/_next/static/chunks/31jk64s9j6agx.js"],"MetadataBoundary"]
7:["$","li",null,{"children":["SDKs in TypeScript, React, PHP (Laravel-ready), and Python (Django + FastAPI), plus the"," ",["$","$L5",null,{"href":"/with-pennant","children":"growth umbrella"}]," for the joint Pennant pair."]}]
8:["$","li",null,{"children":["A docs surface (this site) with"," ",["$","$L5",null,{"href":"/reference","children":"Scalar-embedded OpenAPI"}]," reference, conceptual guides, and a calibration table that explains why the shipped defaults are what they are."]}]
9:["$","h2",null,{"children":"What it is not"}]
a:["$","ul",null,{"children":[["$","li",null,{"children":[["$","strong",null,{"children":"Not production-grade."}],"Production-shaped. Honest framing — there's no on-call rotation, no nine-nines target, no enterprise SOC2 audit."]}],["$","li",null,{"children":[["$","strong",null,{"children":"Not a hosted service."}]," Self-host the API from the repo. The demo URL is a single instance on a shared EC2 box."]}],["$","li",null,{"children":[["$","strong",null,{"children":"Not a hand-rolled multi-armed bandit framework."}]," ","Bayesian threshold stopping only in v1. mSPRT, always-valid e-values, and Thompson-sampling bandits are documented as v2 contract surfaces but not implemented."]}]]}]
b:["$","h2",null,{"children":"Who built it"}]
c:["$","p",null,{"children":[["$","a",null,{"href":"https://philiprehberger.com","children":"Philip Rehberger"}],"— Laravel, TypeScript, PHP, Python, PostgreSQL. Production-shipping experimentation infrastructure isn't most freelancers' wheelhouse. Splitstream is the artifact that says I can do it."]}]
d:["$","h2",null,{"children":"Get in touch"}]
e:["$","ul",null,{"children":[["$","li",null,{"children":["Email: ",["$","a",null,{"href":"mailto:hello@philiprehberger.com","children":"hello@philiprehberger.com"}]]}],["$","li",null,{"children":["Upwork:"," ",["$","a",null,{"href":"https://www.upwork.com/freelancers/philiprehberger","children":"upwork.com/freelancers/philiprehberger"}]]}],["$","li",null,{"children":["LinkedIn:"," ",["$","a",null,{"href":"https://www.linkedin.com/in/philiprehberger/","children":"linkedin.com/in/philiprehberger"}]]}],["$","li",null,{"children":["GitHub:"," ",["$","a",null,{"href":"https://github.com/philiprehberger","children":"github.com/philiprehberger"}]]}]]}]
f:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}]
17:[]
10:"$W17"
11:["$","$1","h",{"children":[null,["$","$L18",null,{"children":"$L19"}],["$","div",null,{"hidden":true,"children":["$","$L1a",null,{"children":["$","$15",null,{"name":"Next.Metadata","children":"$L1b"}]}]}],null]}]
13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/002zte3riz0h6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
19:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
16:null
1b:[["$","title","0",{"children":"About — 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."}]]