Skip to content

Graduation Pipeline

Ship an experiment. Keep the winner in code.

Your coding agent writes the variant, and Apex links the experiment to its GitHub pull request. After the pull request merges, the first real Beta or Production visit starts measurement. When the experiment concludes, Apex can open a Graduation PR to keep the winner or a Revert PR to remove the loser. You review it. Apex never merges it.

No credit card to start.

ApexExample workflow

One experiment. Two pull requests.

The code and the result stay connected.
  1. 01Your pull requestShip the change you want to testYour coding agent writes the variant.Merged
  2. 02ApexApex experimentMeasure what real visitors doA real Beta or Production visit starts measurement.+14.8% example
  3. 03Graduation pull requestKeep the winning codeApex opens a PR that removes the experiment logic.Ready to review
Apex opens the final pull request. Your team reviews and merges it.

Start only when the code is ready

The experiment waits for the merge and the first real visitor.

With the merge gate on, the experiment can’t start before its code merges. Apex then waits for the first visit to a named Beta or Production site. Local development doesn’t start the clock.

shop / websiteExample

Try a shorter homepage hero #42

Openshop wants to merge 1 commit into main from apex/exp_home_hero

Apex linked this pull request to Homepage hero

All checks have passed4 successful checks
Merge to make the experiment readyMeasurement starts on the first real visit.

Apex experiment

Draft
2Deploy
3Live
4Decision
5Promote
6Graduate

Try it: choose Merge pull request, then Send example visit.

  1. 1

    Link the experiment

    The pull request and experiment stay together.Link the experiment to its GitHub pull request in Apex.
  2. 2

    Merge when the code is ready

    Apex won't start before the linked pull request is merged.With the merge gate on, the merge makes the experiment ready. Apex still waits for a real visit.
  3. 3

    Receive the first real visit

    A real Beta or Production visit starts measurement.The first recorded visit from a named Beta or Production site starts the clock. Dev and localhost don't count.
  4. 4

    Review the Graduation or Revert PR

    Keep the winner or remove the loser.Apex can open a Graduation or Revert PR in a repository you allow. It won't merge it.

A named Beta or Production visit starts measurement. Dev and localhost don’t.

When the experiment concludes

Apex opens a Graduation or Revert PR for your review.

If the variant wins, Apex can open a Graduation PR that keeps it and removes the experiment code. If the control holds, Apex can open a Revert PR instead. Each starts on a new branch. Apex won’t force-push or merge it.

ApexExample outcome

Variant B won

The shorter hero increased paid signups.

+14.8%97% chance Variant B is best
Illustrative result
shop / websiteOpen

Apex opened a Graduation PR

Inline winning homepage variant

apex/graduate-exp_home_hero

HomeHero.tsxrefactor(apex): inline winning variant

- const variant = useApexVariant("exp_home_hero");
+ return <ShortHero />;
You review and merge this pull request.
pull request merged   →  experiment ready
first recorded visit  →  measurement started
winner decided        →  graduation PR ready

You stay in control

Choose which repositories Apex can write to.

Apex can notify you without access to your repositories. To let it open Graduation or Revert PRs, grant access one repository at a time. Apex can open a PR, but it can’t merge one.

Automation ControlsExample only. Nothing here changes a repository.Review required

Repositories Apex may write to

You choose each repository.

When the experiment concludes

Choose whether Apex opens a Graduation or Revert PR.

Open a Graduation PR to keep the winnerApex opens it on a new branch and waits for your review.
Open a Revert PR if the variant losesOff means Apex notifies you and leaves the code alone.
Apex opens a new branch. It won’t force-push or merge its own pull request.

Your move

Run the experiment. Keep the winner. Remove the experiment code.

Connect GitHub and allow a repository if you want Apex to open Graduation or Revert PRs. GitHub is optional. You can run experiments without it.