Conflict detection
Before launch, Apex compares targeting and schedule with every live or scheduled test. Exclusion groups keep tests that must never overlap apart.
Experimentation
Variants built at code level and served at the edge. Conflicts checked before launch. Statistics that can't be talked into a winner. And a safety layer that pauses a losing test on its own.

Build
Apex Operator reads your live page, its DOM, network and state, and writes the change as structured edits or code. You review every variant before it can launch.
Prefer to write it yourself? Every variation has a code workspace with JavaScript, SCSS and a mutations file, in the dashboard or through the CLI.


Deliver
One script from Apex's Cloudflare edge loads in the head of your page. It assigns the visitor, applies the variant and reports events.
Anti-flicker is scoped by default: Apex hides only the elements a test changes, for at most 1.2 seconds, until the variant is in place.
Parallel testing
Running many tests at once is only safe when the plumbing is strict. This is the plumbing.
Before launch, Apex compares targeting and schedule with every live or scheduled test. Exclusion groups keep tests that must never overlap apart.
Deterministic hashing keeps every visitor in the same variant, whether the browser, the edge or your server asks.
Traffic the edge flags as a bot is filtered out of every result before a single number is shown.
Until a visitor consents, Apex sends no tracking events and writes no persistent ID. Those sessions never enter the sample.
Preview and QA visits are marked and filtered, so testing a variant never counts as a visitor.
Exact, wildcard or regex URLs, device, browser, UTM, referrer, language, cookies, returning visitors and Shopify customer tags.
One test can span several URLs with pooled assignment. A/A tests are a test type of their own, no fake treatment needed.
Keep a share of traffic out of every test, so you can measure what the whole program adds, not just each test.
Click, movement, scroll and rage-click heatmaps per variant, plus consent-gated, input-masked session replays.
Statistics on rails
Apex is frequentist, on purpose. Every test needs a primary metric before it can launch, and is planned for a sample size and a duration. Apex reads results fixed-horizon, or sequentially with an always-valid method that stays honest when you check every day.
New tests call a winner at 80% confidence by default, configurable up to 99%. With several variants, a Holm–Bonferroni correction keeps the error rate honest. A sample-ratio mismatch withholds the verdict, and no result is shown below 100 conversions.


Guardian
Apex Guardian watches every running test. When a variant breaks, or is harming results at a strict 99% bar, Guardian pauses it and traffic goes back to the control.
Revenue drops and sample-ratio problems raise an alert. You set a revenue-loss limit for the store and for each test. Every action is explained in plain language and posted to Slack.
Readiness
Every test walks the same checklist: primary metric, variants, page or audience, traffic allocation and QA. Apex blocks the launch until all of it is green.
QA links open the forced variant on your live store without a login, for up to seven days. Screenshot jobs capture desktop, iPhone and iPad, and a QR code opens the variant on a real phone.

Apex can come with the research on your shop and the team that reads the results, or run on its own, and a free plan for one store needs no card. The main way in is a call: if your shop does six figures a month, book one and we'll find the setup that fits.
30 minutes, and you'll know exactly where your shop stands.
Cookies
We use optional analytics and marketing cookies to improve performance and measure campaigns. Privacy Policy