Platform services
Platform services
The shared services Exo provisions to every App so that Apps skip basic plumbing.
Each service follows the same pattern: Exo owns the platform relationship, keys, and schema, and Apps call one Exo contract. Swapping the platform behind a service is an Exo change, not an App change (tenet 3).
| Service | Dimension | Decision | Status | Platform behind it |
|---|---|---|---|---|
| Exo Key | Identity | ADR 0004 | Live on staging | Convex Auth v2 |
| exo-verify | Continuous integration | ADR 0005 (on main) | Accepted; not built | Vitest, Playwright, Railway workers, open-source review engine |
| exo-analyze | Analytics | ADR 0006 (on main) | Accepted; planned | PostHog adapter |
| exo-deploy | Deploy | ADR 0007 (on main) | Web live; mobile accepted, planned | Railway; Expo; EAS optional |
| exo-router | AI | AI routing | Endpoint live; routing built | Convex AI Gateway, Arch-Router; Artificial Analysis TBD; TypeSafe dormant |
How they join up
The services are designed to compose into one per-App cost-to-serve record:
- Exo Key supplies the sign-up step of the exo-analyze funnel.
- exo-router records every model call in
exoAiBrokerJobs. - exo-verify sends its AI review calls through exo-router and records its cost per App.
- exo-deploy bakes the exo-analyze SDK and Exo Key native sign-in into the mobile template.
- exo-analyze joins visits, sign-ups, payments, and cost to serve into per-App unit economics.
See cost and unit economics for which of these joins exist today.
Source: content/docs/platform/index.mdx
12 · Artificial intelligence
Apps send prompts to exo-router, Exo's smart model routing. It scores how hard each task is and picks the least costly capable model through the Convex AI Gateway.
Exo Key
Exo is the only OAuth client and identity provider; Apps are relying parties that receive app-scoped RS256 tokens.