Data-driven conversion optimization, server-side
Done with gut feel and client-side flickering. We build the server-side A/B test architecture and product analytics setup that grows your conversion rate without sacrificing Core Web Vitals.
- PostHog
- GrowthBook
- Statsig
- Kameleoon (Server-Side)
- Vercel Edge / Cloudflare Workers
- BigQuery (Frankfurt)
- GA4 Exploration
✓ Edge assignment · Core Web Vitals intact · EU-self-hosted
In short
We build the server-side A/B test architecture at the edge, assignment before the first paint, exposure logging in BigQuery, Bayesian and Frequentist side by side. Your conversion rate grows without client-side flickering sacrificing Core Web Vitals.
- Who it's for
- E-commerce & B2B SaaS on a headless stack with test traffic
- What you get
- Edge handler, flag service & exposure pipeline
- Entry
- Audit from €2,900, Build in 4 to 12 weeks
01Quick self-check
You're in the right place if:
Tick what applies.
02How it works
A continuous loop, in four steps.
Continuous validation, not a one-off relaunch lottery. Step four feeds the next backlog.
- PostHog · GA4 · BigQuery
Data Audits
Conversion funnel validated for data quality: event validation, cross-device completeness, bot and sampling correction.
- ICE · MDE · Notion
Hypothesis Engineering
Prioritised hypotheses with ICE score, MDE, and runtime calculated upfront. Method choice: Bayesian or Frequentist.
- Vercel Edge · Cloudflare
Edge Deployment
Server-side assignment before the first paint. Hashed bucketing, exposure event to backend and BigQuery in parallel.
- GrowthBook · Statsig
Significance analysis
SRM check, confidence interval, and effect size instead of a bare p-value. Entry into the Learnings Library.
03What we build
Was wir bauen
Google Optimize is dead. Client-side test frameworks inject variants after the first paint and break Core Web Vitals in the process. Adblockers filter exposures, ITP kills the bucketing cookie. Anyone still assigning in the browser in 2026 is testing against noise.
Most experimentation programmes don't fail on weak hypotheses, they fail on setup leaks. Mis-attributed exposures, filtered bucketing, prematurely stopped tests. The same errors repeat in every CRO audit we run.
We move the assignment logic to the edge: server-side bucketing before render, exposure logging in BigQuery, Bayesian or Frequentist significance depending on the question. The variant arrives fully rendered from the edge handler, no FOUC, no CLS jump.
We're not a CRO agency that paints buttons red. We're engineers who build the pipeline that makes painting buttons red measurable in the first place.
04The difference
Client-side test vs. edge assignment.
Architecture: server-side assignment at the edge, before the first paint. Bucket cookie, exposure event, and variant rendering happen atomically before the browser receives the HTML.
05The building blocks
Three workstreams. One setup.
Analytics, test engineering, and data science run in parallel and together form a complete experimentation setup.
Analytics & tracking
Clean, event-based measurement as the foundation. Without valid exposure events, every evaluation is guesswork.
Concretely: PostHog and GA4 setup, funnel tracking cross-device and cross-domain, exposure logging in BigQuery Frankfurt, Consent Mode V2 integration for PII separation.
Tools: PostHog · GA4 · BigQuery · Consent Mode V2
Test engineering
The assignment logic runs at the edge, not in the browser. Bucket persistence across session and login boundaries.
Concretely: Edge handlers (Vercel Edge, Cloudflare Workers, Next.js middleware), flag service via Statsig or GrowthBook (EU-self-hosted), Kameleoon SS or VWO server-mode for enterprise.
Tools: Vercel Edge · Cloudflare · GrowthBook · Statsig
Data science
Significance computed cleanly, with a documented method choice. No bare p-value, no peeking without alpha-spending.
Concretely: Cohort analysis by source, device, and LTV stratum, Bayesian and Frequentist side by side, SRM check, sequential-testing spending, BigQuery ML for pre-test stratification.
Tools: BigQuery ML · Bayesian · Frequentist
06In plain terms
The key terms, briefly explained.
MDE
Minimum Detectable Effect. The smallest effect a test can statistically detect at a given runtime and traffic level.
SRM
Sample Ratio Mismatch. If the control/variant split deviates from target, the test is compromised. Checked before evaluation.
Bayesian vs. Frequentist
Two significance methods. Frequentist yields p-values for hard go/no-go decisions, Bayesian a direct probability plus sequential testing.
Exposure
The logged event that a user saw a variant. The basis of every evaluation, so it's captured server-side, not in the browser.
07Who it is for
When it pays off.
E-commerce on a headless stack
Next.js, Astro, Remix, or SST in production. Performance is a KPI, and client-side test tools ruin the Lighthouse scores that carry SEO.
B2B SaaS with pricing and onboarding tests
Trial funnels, pricing variants, and activation flows need valid tests, not heatmap gut feel. Bucket consistency across login state is non-negotiable.
Paid-media teams with landing-page tests
Running ads and need landing-page variants that compete cleanly. Per-channel evaluation with correct multi-variant correction.
Post-relaunch teams
Watching regressions or drop-offs after the relaunch. We build the switchback setup that lets you validate against the pre-relaunch state.
08Deliverables
What you end up with.
Conversion data audit (Audit Sprint)
- Cross-device funnel analysis with drop-off rates per step
- Prioritised hypothesis backlog (ICE score, MDE, required runtime)
- Bot and sampling correction, exposure validation
- Audit report with test recommendations for the next 90 days
Edge architecture (Build Sprint)
- Middleware handler (Next.js / Vercel Edge / Cloudflare Workers)
- Flag-service integration (GrowthBook EU-self-hosted, or Statsig)
- Exposure event pipeline to backend and BigQuery
- Bucket consistency cross-domain, pre- and post-login
Test operations (Managed Evolution)
- Test setup with documented runtime and stop criteria
- SRM monitoring and sequential-testing spending
- Evaluation with confidence interval and effect size
- Documentation in the Learnings Library
Reporting & handover
- Monthly test performance report
- Quarterly hypothesis reprio based on accumulated learnings
- Handover documentation for the internal team
- 30-day post-launch support
What we do NOT do
Engagement depths
Three depths. Clear scopes.
No retainer trap.
Audit Sprint
We audit what is wrong. Prioritised report + action plan.
plus statutory VAT
Included
- Full analysis of the existing setup
- Prioritised report with concrete actions
- 90-minute walkthrough with your team
Not included
- Implementation (follows in the Build Sprint)
- Code in your app or website
When it fits
When the setup runs but the numbers are questioned internally.
Fixed price by scope (Audit Sprint / Audit Sprint Plus). 50% credited toward a Build Sprint if commissioned within 30 days.
Request an Audit Sprint →Build Sprint
Fresh build or restructure, built to spec.
plus statutory VAT
Included
- Edge middleware + flag service (GrowthBook / Statsig)
- Exposure pipeline into BigQuery (Frankfurt)
- Significance reporting: Bayesian + Frequentist
Not included
- Campaign execution, media buying, creative
- Tool licences (billed directly, no markup)
When it fits
When a clean rebuild beats patching in production.
Final fixed price after scope definition.
Discuss a Build Sprint →Managed Evolution
Ongoing partnership. Analytics as a product.
plus statutory VAT
Included
- Monthly development + roadmap
- QA on every release deploy
- Slack support, < 4 h response (Mon–Fri)
- Monthly report + executive summary
Not included
- 24/7 on-call rotation
- Campaign operations
When it fits
When analytics has to keep growing with you.
Monthly cancellation after the minimum term.
Request Managed Evolution →All prices net, plus statutory VAT. For companies in Germany, Austria and Switzerland.
Why is server-side A/B testing mandatory in 2026?
Three forces make classic client-side testing untenable. First, Safari ITP 2.3 caps client-side cookies at 7 days, a bucketing state that decays after a week breaks every test. Second, ML-based adblockers filter 25 to 40 percent of exposure events, the power analysis runs against invisible sampling. Third, client-side variants force a FOUC before the snippet swaps the variant, measurably damaging CLS and LCP in Core Web Vitals. Server-side assignment at the edge avoids all three: bucketing happens on the server, exposure is logged in the backend, the browser receives the final variant without flicker.
Bayesian vs. Frequentist: which method do you use?
Both, depending on the question. Frequentist (Welch t-test, Mann-Whitney U) yields classical p-values and MDE power analysis, suitable for regulated tests and hard go/no-go decisions before launch. Bayesian (native in GrowthBook or Statsig) gives a direct probability statement ("Variant B is better with 94 percent probability") and allows sequential testing without alpha inflation, useful when the business case is asymmetric and peeking has to be allowed. We pick the approach during the hypothesis kickoff, not afterwards.
How do you integrate testing into a Next.js / headless stack?
Assignment logic runs in Next.js middleware or a Cloudflare Worker. Concretely: the request hits the edge layer, we hash the user ID (anonymous or consent-bound PII) against the test definition, write the bucket cookie, and route to the assigned variant. The exposure event goes to PostHog or GrowthBook in parallel, and to BigQuery for evaluation. Variant code stays with your dev team, we ship the edge handler, flag service and exposure SDK wiring. Works on Vercel, Cloudflare Pages, Netlify Edge and SST.
How do you prevent client-side flickering during tests?
Through architecture, not trickery. Client-side test frameworks like Google Optimize (sunset 2023), VWO Visual Editor or Optimizely Web inject CSS and DOM mutations after the first paint, producing Flash of Unstyled Content and a measurable CLS jump. With server-side assignment at the edge the browser receives the HTML of the assigned variant directly. No paint cycle, no mutation observer, no layout shift. Before rollout we document the CLS delta between control and variant and stop the test if the variant shows performance regression.
How much traffic does a site need for A/B tests?
Rule of thumb: at least 1,000 conversions per test variant over 4 weeks. Below that the test runs longer than the hypothesis stays valid, or returns no significance. With lower traffic we use qualitative methods, the obvious wins from the conversion audit and switchback designs at the marketing-channel level. We don't recommend tests that aren't structurally measurable, that's burning budget.
What is a Learnings Library?
A documented record of every test, won or lost. Each entry contains: hypothesis, test design, MDE, runtime, result with confidence interval, derived learnings. Prevents the same tests running twice, accelerates the next hypothesis by weeks. We host the library in Notion or Linear, ownership stays with you.
How long does an A/B test take?
At least 2 weeks to cover weekday and weekend effects. Typically 3 to 6 weeks to significance, depending on baseline conversion rate, MDE and traffic volume. We don't stop tests early because an interim result looks good. Peeking without alpha-spending destroys the statistical claim, one of the most common errors in CRO programmes.
What does an experimentation setup cost?
Audit Sprint at €2,400 net fixed price, 10 business days delivery. Includes conversion data audit, prioritised funnel leaks, test roadmap. Build Sprint for the edge architecture (middleware handler, flag service, exposure pipeline) from €7,500 net, depending on hosting setup. Managed Evolution monthly, from €4,000 net per month, covers hypothesis backlog, test operations and quarterly roll-up.
Next step
Where are you losing conversions today?
Audit Sprint at €2,400 net fixed price, 10 business days delivery. Conversion data audit, prioritised funnel leaks, test roadmap. No follow-on contract, no forced retainer.
- Entry
- €2,900–4,500 net
- Delivery
- 4–12 weeks
- Scope
- 5 modules