Edge-deployed
Served from Cloudflare's network across 300+ cities and cached per config version — your experiments live where your visitors are.
ABTestly is a small, cacheable experiment runner that ships variants from Cloudflare's edge — so visitors see the right version before the rest of your page can blink. Built for teams who care about speed, instrumentation, and the numbers behind a decision.
The things you actually need to run good experiments — without dragging down the page you're testing on.
Served from Cloudflare's network across 300+ cities and cached per config version — your experiments live where your visitors are.
Config is served from Cloudflare's edge; the variant is applied synchronously, before your page reveals. No FOUC, no white-flash, no “original-then-test” jump.
Every exposure pushes an experience_impression event to your dataLayer with the experiment and variant IDs, so it flows into GA4 through your existing GTM/GA4 setup — no separate analytics add-on or SKU.
Works with static and server-rendered sites — Astro, Hugo, Eleventy, Rails, the server-rendered output of Next, and plain HTML. Anywhere you can drop a small script tag, you can run experiments on the rendered page.
Significance testing with confidence intervals and a sample-size calculator — and a plain-language verdict that won't call a winner before the data supports it. Built so your CRO lead and your engineering lead are looking at the same numbers.
The honest version. Pricing and capabilities reflect public information from each vendor.
ABTestly figure is the Starter (entry) plan. VWO and Convert figures are each vendor's entry/Growth tier; their higher tiers cost more. Optimizely is quote-only. Snippet figure is the runtime snippet, excluding inlined config. Competitor capabilities and pricing verified May 2026 from each vendor's public documentation. Check their sites for current details.
The first hundred paying customers get 20% off the Pro plan for their first 12 months when billed annually. Use code FOUNDING100 at checkout. Renews at standard Pro pricing after twelve months. Cancel any time.
The snippet is around 8 KB gzipped (the loader itself is under 1.5 KB) and is served from Cloudflare's edge across 300+ cities, cached per version. In practice that means it's fetched from a PoP close to your visitor and reused across page loads.
We're not going to put a specific millisecond figure here until we have a benchmark we're willing to publish. If a vendor's marketing site quotes one without methodology, treat it as marketing.
Yes — anywhere you can drop a script tag onto a server-rendered or static page. (Single-page apps that swap content with client-side routing need our dedicated SPA handling, which is rolling out.)
ABTestly pushes a dedicated experience_impression event to your dataLayer carrying the experiment and variant IDs; it reaches GA4 through your existing GTM/GA4 configuration. One-time setup is mapping those fields to GA4 custom dimensions — we ship a GTM template to do it in a few clicks. No separate analytics add-on or SKU; it's included in every plan.
No. The experiment config is delivered from Cloudflare's edge, and our loader is inline and synchronous — so the variant is in place before your page reveals and visitors see the assigned version from the first frame. The difference from most client-side tools isn't where the decision is made; it's that the page doesn't reveal an un-tested version first while an async script loads.
Yes. Monthly plans are month-to-month and annual plans can be cancelled within 14 days for a full refund — see the refund policy.
Free plan, no card, no “contact sales”. Drop in the snippet, define one variant, watch the events.