FOR PLATFORM ENGINEERS

Per-PR game backend sandboxes that fit your existing pipeline — no new toolchain required.

Aevs uses standard protocols at every layer: REST, webhooks, OIDC, OpenTelemetry. It installs as a single GitHub Action step. There is no proprietary agent to maintain, no new control plane to learn, and no lock-in to a platform SDK. If you need to remove it, you remove one CI step.

Stack fit

ToolFitDetail
GitHub ActionsNative — one step, no plugin neededgh action runs npx ts-node aevs.plan.ts; passes AEVS_API_KEY from secrets
OpenTelemetryAlready the observability layerAevs emits traces and metrics via OTel; pipe to Datadog, Grafana, or Honeycomb
TerraformProvider available (aevs_project / aevs_sandbox)Sandbox config and validation plans as HCL; GitOps-native sandbox lifecycle management
REST + webhooksEntire API surface is RESTNo proprietary SDK required to interact with the platform API
OIDC / JWTAuth layer uses standard OIDCShort-lived tokens; SSO/SAML on Enterprise (roadmap); no proprietary auth protocol
Wildcard DNS*.sandbox.aevs.app per sandboxEach PR gets its own subdomain; no manual DNS entries; torn down on merge

The CI integration

The GitHub Action runs your validation plan file (aevs.plan.ts or aevs.plan.cs), which creates a sandbox, runs assertions, and tears it down. The plan file lives in your repo, is reviewed as a PR, and runs deterministically on every branch.

yaml
# .github/workflows/aevs-validate.yml
name: aevs validation
on: [pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npx ts-node aevs.plan.ts
        env:
          AEVS_API_KEY: ${{ secrets.AEVS_API_KEY }}
          AEVS_PROJECT_ID: ${{ vars.AEVS_PROJECT_ID }}

Observability

Aevs emits traces and metrics via OpenTelemetry at every sandbox lifecycle event: provision, validation run start/complete, teardown. Pipe them to whichever backend you already use — Datadog, Grafana, Honeycomb, or your own collector.

Each validation plan run produces a structured report: step-by-step pass/fail, request/response logs, timing data, and assertion diffs. The report is attached to the PR as a commit status check. No separate dashboard to check — the failure surface is in the PR itself.

How sandboxes work

On PR open, Aevs provisions an isolated environment under a wildcard subdomain (*.sandbox.aevs.app). The environment runs the same infrastructure as production — same routing rules, same service configuration. The tunnel daemon routes traffic from the sandbox to the correct service instances and reports heartbeat status back to the platform API.

On PR merge (or close), the sandbox is destroyed. There are no persistent staging environments to manage, no environment drift to monitor, and no cleanup jobs to run. The lifecycle is entirely managed by the CI pipeline.

What it doesn't do

Aevs is a validation layer, not a game backend. It does not replace matchmaking, session management, economy, or social features. It doesn't host your game servers. It validates your backend — whatever it's built on — before changes reach production.

Drop it into your pipeline today

Request access — setup is one GitHub Action step and an API key.

Request access →