The stack
Cost and unit economics
Every cost figure recorded in the ADRs and docs, the unit-economics model Exo is building toward, and what is still TBD.
This page collects every cost figure the repository records. Figures are quoted from their source with the date of the decision. Nothing here is a new estimate, and where the repository records no figure, the cell says TBD.
Recorded figures
| Dimension | Item | Figure | Source |
|---|---|---|---|
| Continuous integration | exo-verify compute | ~$0.007 per 5-minute run on a 2 vCPU / 2 GB Railway worker | ADR 0005 (2026-09-27) |
| Continuous integration | exo-verify model tokens | $0.01–0.10 per run | ADR 0005 |
| Continuous integration | exo-verify per verified commit | ~$0.02–0.10 | ADR 0005 |
| Continuous integration | exo-verify monthly at ~300 agent commits | ~$6–30 | ADR 0005 |
| Continuous integration | Greptile Pro (alternative) | $30/seat/month, 50 credits/seat, $1 per extra credit; est. ~$300–900/month at the same volume | ADR 0005 |
| Continuous integration | CodeRabbit (alternative) | $24–30/user; CLI free at 3 reviews/hour on local git | ADR 0005 |
| Continuous integration | Graphite (alternative) | $40/user | ADR 0005 |
| Analytics | PostHog free tier | ~1M events/month | ADR 0006 (2026-09-27) |
| Observability | Exo event table on Convex | "a few dollars per month" expected | ADR 0006 |
| Deploy (mobile) | Apple Developer Program | $99/year (required) | ADR 0007 (2026-09-27) |
| Deploy (mobile) | EAS Free | $0; 15 iOS + 15 Android builds/month, OTA updates to 1K MAU | ADR 0007 |
| Deploy (mobile) | EAS Starter | $19/month plus usage beyond the included $45 build credit | ADR 0007 |
| Deploy (mobile) | Own Mac builder | Hardware or hosted Mac; ~$0 per build; pays off only at high volume | ADR 0007 |
| Deploy (mobile) | exo-deploy at current volume | ~$8/month (Apple fee amortized) | ADR 0007 |
| AI | Arch-Router assessor (exo-router) | No per-call cost; self-hosted, CPU-only, ~1 GB RAM | ai-routing, arch-router |
| Identity | Clerk (retiring) | Charges per MAU (reason for leaving; no figure recorded) | ADR 0003 |
| Portability | Exit | No punitive exit fee; direct infrastructure egress may be passed through | portability |
Where ADRs 0005–0007 live
ADRs 0005, 0006, and 0007 were accepted on main on 2026-09-27 and are not yet on staging.
They will render under Decision records once the branches are reconciled. Until
then, read them on main:
0005,
0006,
0007.
Not yet recorded (TBD)
The repository does not record plan or monthly figures for these. Treat each one as TBD until someone adds an ADR or doc:
- Convex plan and usage (control plane, identity, app state, media) for both deployments
- Railway monthly spend for the Exo web services and the
arch-routerservice - Entire (forge) pricing
- Construct operating cost per site
- Bird per-message pricing for email, SMS, and voice
- Twenty hosting (self-hosted or cloud)
- Stripe and RevenueCat fees at portfolio volume
- AI model spend per App (see the exo-router caveat below)
- Hermes and FluidVoice operating cost
- Artificial Analysis benchmark access (not wired into
aiModelPoolyet)
The unit-economics model
exo-analyze (ADR 0006) defines the funnel Exo stores end to end, so that every App has computable unit economics:
visits → sign-ups (Exo Key) → paid (Stripe / RevenueCat webhooks) → cost to serve
(exoAiBrokerJobs + exo-verify + infra)Each App's dashboard is meant to report cost per active user and gross margin per paying user, so a feature is judged on cost per unit and margin, not revenue alone.
What is measured today
- AI jobs. Every exo-router job (
POST /v1/ai/generate) writes a row toexoAiBrokerJobswithjobType,status,provider,model,sourceCount,durationMs,inputTokens, andoutputTokens(convex/schema.ts). The table has acostMicrosUsdcolumn, but onstagingthe endpoint does not compute it yet (the response returns0), and rows carry no App identifier. Per-App AI cost is therefore TBD; token counts are the current unit. - Routing.
aiRoutingLogrecords the chosen model, its utility score, the assessor, and afallbackflag for every routed decision.aiModelPoolholds per-model input and output cost per million tokens (USD) and a 0–100 intelligence estimate. - Revenue. Stripe and RevenueCat events land in an idempotent, normalized ledger with cached metric snapshots. Currencies are never summed silently, and unobserved metrics display as unknown, never zero (revenue monitoring).
Spend governance
- projects.dev spend gate. Before each deployment, Exo verifies the matching environment, reads the credential inventory without revealing values, inspects recent spend, and confirms a global spend limit exists and has not been exceeded. Free tiers are preferred, and any new or upgraded paid plan needs explicit owner approval (repository contract).
- Buy vs. build at agent volume. Third-party tools are priced per run at agent commit volume (hundreds per month), not per seat. That is why exo-verify was built rather than bought.
Source: content/docs/stack/economics.mdx