Know what is safe to ship.
MeerGate verifies a release candidate against the last version you trusted — and turns the difference into a decision you can defend, with the evidence attached.
No credit card · Self-hosted option · Your traffic stays in your network
hold-then-transfer — money out must respect held funds — passed in v2.7.3 and fails here.
One release decision, and the one behavior behind it.
AI proposes. You approve. The engine proves.
Discover
OpenAPI, gRPC reflection, service relationships and the rules written in your code.
Derive
The model proposes flows, each named after the behavior it protects.
Review
Accept, reword in plain language, or edit the manifest. Nothing runs unless you keep it.
Run
A deterministic engine executes it and records every request as evidence.
The model writes the flow. It never runs one, and it never decides a release.
One rule. Every path that could break it.
Nobody wrote this test. The catalog knows the wallet has more than one way to move money, and the rule says none of them may touch funds on hold.
Everything the decision needs — nothing that only decorates it.
Living service catalog
Services discovered from OpenAPI and gRPC reflection, then kept current: health, latency and schema drift.
wallet-service · drift: 2 fieldsCoverage by operation
Every endpoint mapped to the tests that exercise it, so an untested operation is visible rather than assumed.
24 / 31 operations coveredRules and scenarios, derived
Guarantees found in your code become flows; service relationships become the cross-service scenario nobody wrote.
withdrawal.go:184 → qr-pay-locked-accountPlain language and YAML
Change a flow in one sentence, or edit the manifest by hand. Both produce the same reviewable file.
1 step added · same rule still coveredSchedules and alerts
Run on a schedule, watch pass rate and duration, and get alerted on the failure conditions you define.
nightly 03:00 · alert under 90%Root cause in your own tools
Every run carries a trace id into the services it calls, so a red step links into your Grafana or Datadog, already filtered.
trace 4bf92f35…0e4736One click from the failure to the reason.
No logs collected. No logs stored. Just the run's identity on every request it makes.
00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
Two ways to run it. Same verification.
What changes is who hosts it and what you need around it. The free CLI is below.
The whole chain, hosted by us: rules to tests, tests to evidence, evidence to a release decision.
- Unlimited test flows & runs
- Plain Text Test Creation
- Autonomous Regression Generation
- Business Rule Test Generation
- Visual Builder
- Regression Packages
- Scheduled Runs
- Coverage Maps & Release Gates
- Baseline & Regression History
- Rule-based Alerts
- Root-Cause Analysis with Your Logs & Traces
- Slack Integration
- Jira Integration
- GitHub Integration
- CI/CD Hooks
No credit card required
The same verification, running inside your network and under your own controls.
- Everything in Cloud
- Private runners — traffic never leaves your network
- Self-hosted, VPC or on-prem · data residency
- SSO · RBAC · audit trail
- Commercial licence, no copyleft
- SLA and dedicated support
Reply within one business day
One binary. One report.
Point it at a spec. It derives the contract checks, runs them, and writes a Markdown report — no account, nothing to host, nothing to connect.
$ go install github.com/meergate/cli@latest
$ meergate run --openapi ./openapi.yaml
12 operations · 34 checks
32 passed 2 failed
✗ GET /orders/{id} 404 ≠ 200
✗ POST /orders schema: missing `total`
report → meergate-report.md
The things people ask first.
Does my code or traffic leave my network?
With the self-hosted and Enterprise options, no: runners live inside your network and call your services directly. On Cloud, MeerGate calls the endpoints you point it at. In every case logs are never collected — the product links out to your own tool instead of ingesting anything.
What does MeerGate need to get started?
A reachable service and a description of its surface: an OpenAPI document, gRPC server reflection, or both. Discovery fills the catalog from there, and generation proposes the first flows for you to review.
How is this different from running my suite in CI?
A suite answers "did my tests pass". MeerGate answers "did anything that used to work stop working", by keeping the previous good result per test and diffing against it. That comparison — not the pass rate — is what blocks or clears a release.
Do I have to write the tests?
No, but you can. Flows are generated from your contracts and the business rules found in your code; you refine them in plain language or by editing the YAML directly. Anything you write by hand runs the same way.
See it against your own service.
Tell us what you need to ship safely — one endpoint, or a chain across four services. We answer within one business day, from a person.
Prefer email? hello@meergate.com