Stop maintaining four versions of your pricing rule.

The web app, the API, the billing worker, and the mobile SDK all compute the same number differently. Until they do not match. Traverse writes business logic once and runs it everywhere.

Get started All solutions

Business logic that lives in too many places

Every environment needs its own version. They drift. Support tickets follow.

Pricing drift

Pricing logic in the storefront, the API, the billing worker, and the webhook handler. Each one a slightly different version. Reconciliation becomes a quarterly event.

Scattered feature flags

Feature flag checks on the frontend and the backend, maintained separately. They get out of sync. A feature gates correctly on mobile but not in the API.

Per-SDK reimplementation

Permission logic reimplemented for every new client SDK. JavaScript, Python, iOS. Each implementation introduces its own edge cases.

The new AI integration

Your AI feature needs eligibility rules. Those rules live in the backend. Now you need to expose them, or rewrite them, or both.

One canonical rule. Governed execution everywhere.

Write the logic once as a governed capability. The runtime handles placement.

Write pricing once

Compile to WASM. The same binary runs in the browser, the API, and the worker. The result is always the same.

Governed feature access

Capability contracts declare who can call what and under what conditions. Entitlement rules are enforced at the contract level, not scattered in application code.

Drift prevention

Contract versions pin behavior. Old clients get old behavior. New clients get new behavior. Nothing silently changes mid-cycle.

Portable rule engine

Deploy the same eligibility check to edge for low-latency pricing. No rewrite. Same contract, different placement target.

A pricing capability in Traverse

pricing.capability.toml
[capability]
id = "calculate-plan-price"
version = "1.2.0"

[execution]
binary_format = "wasm"
preferred_targets = ["browser", "edge", "local"]

[constraints]
network_access = false
filesystem_access = false

[inputs]
plan_tier = { type = "string", required = true }
quantity = { type = "number", required = true }
billing_period = { type = "string", required = true }
promo_code = { type = "string", required = false }

[outputs]
base_price = { type = "number" }
discount = { type = "number" }
total = { type = "number" }
currency = { type = "string" }

Where SaaS teams use Traverse

01

Pricing engine

Compute plan prices across web, mobile, and backend. Same capability, same result in every environment.

02

Feature entitlements

Check which features a user can access based on their plan tier. Governed by contract. No scattered if-statements.

03

Upgrade eligibility

Determine whether a user qualifies to upgrade. Preconditions declared in the contract, not buried in application logic.

04

Multi-tenant permissions

Permission logic for multiple tenants, each with different rules. One capability per rule, versioned independently.

Write your first governed capability in 15 minutes.

Clone the repo, inspect the example bundle, run the browser demo. No account required.

Quickstart → See use cases