Skip to content

Know what you'll break before you merge.

AfterMerge simulates your change against a graph of every service it touches, then tells you which product behaviours break. Before you merge, not after a customer finds it.

This is what lands on your pull request.

Every product journey your change touches, simulated against the services that implement it. Where one breaks, you get the reasoning and the call sites behind the verdict — enough to decide without opening the other repository.

analysis run #418214 · 1
  • payments-apichg
  • orders-webbreak
  • ledgerclear
  • notificationsclear
  • partner-sdkrun
Update(payments-api/src/routes/batches.ts)
Updated batches.ts with 1 addition and 1 removal
84 return {
85 batchId: batch.id,
86-removed: approvalId: batch.approvalId,
86+added: state: batch.state,
87 };
Breaks(orders-web/checkout/confirm.tsx)
3 call sites read approvalId, which this response no longer returns
87 const res = await createBatch(payload);
88-removed: if (res.approvalId) routeToApprover(res);
89 await confirm(res.batchId);
#4182 / scenariofailed

Buyer submits a payment batch for approval

Failedconfidence 0.94

Expectation

A submitted batch is assigned to an approver and appears in that approver's review queue within one refresh.

Prediction

No prediction recorded.

The diff is local. The blast radius isn't.

A field removed from a response is a two-line diff in the service that owns it, and an outage in every service that reads it.

payments-api

HEAD · 8f21c04

POST /batches no longer returns approvalId

  • orders-webcheckout/confirm.tsx3 call sites
  • ledgertolerates absence
  • notificationsno dependency
  • partner-sdkno dependency

Four steps to set up. Then it runs on every push.

Connect once. Every push re-snapshots and re-simulates your change.

  1. Connect your repositories

    Authorise your code host once. Pick the repositories in one product and the branch each one tracks.

  2. Snapshot the graph at each commit

    Each branch is ingested into a Snapshot: the capabilities it provides, the contracts it exposes, and how they join across repositories.

  3. Turn changes into Scenarios

    An Analysis Run compares your head Snapshot to the base context and generates Scenarios — product journeys in plain language, not test names.

  4. Get Findings, not noise

    Each failed simulation becomes a Finding: what breaks, why, and the code paths behind it. Nothing without evidence is shown to you.

Your services don't speak the same language. They still break each other.

AfterMerge reads every language your product ships in and follows the calls between them. Connect your code host once — nothing to configure per repository, and nothing to keep in sync as your stack changes.

Know what your change breaks before anyone else does.

payments-api

snapshot · main

47 capabilities · 12 contracts

  • orders-webcheckout/confirm
  • ledgertolerates absence
  • notificationsno dependency

Snapshot

See every service one change touches

AfterMerge maps how your services depend on each other, and keeps that map current as the branch moves.

  • GitHub
  • GitLab
  • Bitbucket
  • Self-hosted

Connect

Your code host, including self-hosted

Read-only access to the repositories you pick. Nothing is discovered or cloned on its own.

  • Customer submits a payment batch
  • Approver rejects a batch line
  • Partner reconciles a settlement
  • Refund reverses a captured batch

Scenarios

Product journeys, not test names

You read what a customer would lose, not which assertion failed.

breakingpayments-apiorders-web3 call sites
clearledgertolerates absence

Findings

Every conclusion carries its evidence

You get what changed, which service breaks because of it, and the line of code that proves it.

Start free. Upgrade when you outgrow it.

The limits below are the ones the product enforces, not a marketing summary of them.

free

Connect a few repositories and run your first analyses.

$0

Per month

  • 3 repositories
  • 1 seats
  • 20 analysis runs / month
  • 200 chat messages / month
  • Grounded chat
  • Advanced findings
Start free

pro

Most teams

For a team running analysis on every change across a real service estate.

$10

Per month

  • 10 repositories
  • 5 seats
  • 100 analysis runs / month
  • 1,000 chat messages / month
  • Grounded chat
  • Advanced findings
Start free, upgrade in-app

Before you connect anything.

Read access to the repositories you select, through your existing code host connection. It never writes to your repositories and never opens pull requests.

Find out what your next merge breaks.

Connect one repository and run a first analysis. No call, no demo request.