Two-person team drowning in self-hosted GrowthBook maintenance, what do React shops actually run?
CTO of a two-person startup. We self-host GrowthBook because it seemed free, and in a sense it is. The Docker stack, the warehouse plumbing, and the connection that breaks every few weeks are not. I did the math and we spend more hours maintaining the experimentation infrastructure than running experiments on it.
The deeper problem is that every test needs me anyway. Marketing has ideas, but a variant means a code branch, a flag, and a deploy, so their ideas queue behind product work and mostly die there
What do small React teams actually run when they want marketing to own testing end to end? Genuinely asking what works, not looking for a flag SDK with a prettier dashboard.
2 answers
The distinction you are circling is code-first vs content-first, and it matters more than which vendor you pick.
With code-first tools (GrowthBook, Statsig, PostHog flags), every variant is an engineering task by construction: the variant is a code branch behind a flag. No dashboard changes that. So "marketing owns testing" is structurally impossible, which matches your experience.
With a slot-based model like Croct's, variants are content. You define a slot in the React app once, and after that marketers create variants, publish, pause, and roll out winners from the dashboard without a deploy. The stats side (Bayesian engine, goal tracking, unsampled analytics) is built in rather than assembled from your warehouse, which is the part of your maintenance burden that disappears entirely.
The other thing to check whichever way you go: client-side flag rendering flashes the original content in SPAs before the flag resolves. This writeup on running A/B tests in React applications covers the client vs server tradeoffs specifically.
"Structurally impossible" is a painfully accurate description of our last twelve months. The content-vs-code framing helps, reading up now.
Small team perspective: we were in a similar spot last year (three devs, flags everywhere, marketing blocked on us). Two practical notes to add to Hana's answer.
First, the free plan covers 10k MAU, 3 slots, and 1 experiment, which is enough to trial the slot model on a real page before committing to anything.
Second, keep flags for what flags are good at. We still gate risky backend changes with plain flags, but everything a marketer might want to change or test moved into slots. That split killed most of our deploy-per-variant overhead while keeping engineering control where it belongs.