The stack
11 · Observability
exo-analyze keeps visits, sign-ups, conversion, and cost to serve in one Exo event layer; PostHog is a swappable dashboard adapter.
- Dimension
- 11 · Observability
- Platform
- PostHog + RevenueCat · via exo-analyze
- PostHog
- Replaceable dashboards and replay over Exo-owned events: visits, sign-ups, conversion, and cost to serve. Optional adapter · authority: EXO
- RevenueCat
- Mobile subscriptions and in-app purchase events normalized beside web payments. Optional adapter · authority: App
- Status
- Accepted (ADR 0006, 2026-09-27); planned.
Renamed from Analytics (2026-10-05): the same exo-analyze layer, named for what it does.
What it is
Visits, sign-ups, conversion, and cost to serve land in one Exo event layer beside payments. Dashboards are an adapter, so the provider can change without touching an App. The service design is on the exo-analyze page.
Platform
- PostHog provides dashboards and session replay, sitting behind Exo as a swappable adapter. Plausible and GA4 remain possible adapters.
- RevenueCat supplies the paid step of the funnel for app-store purchases, beside Stripe for web payments (ADR 0006). Revenue events land in the ledger described on Payments.
Boundary and replaceability
- Ingestion and schema live in Exo's Convex backend, partitioned per App and per environment. Apps send events to one Exo endpoint through a thin SDK (web and Expo).
- Apps never integrate an analytics platform directly. Changing platforms is an Exo adapter change.
- Event schema changes are platform decisions. Privacy and consent (cookie banners, data deletion) are centralized in Exo.
Cost notes
From ADR 0006:
- At today's portfolio scale, event volume fits PostHog's free tier (~1M events/month).
- The incremental cost is Convex storage and function usage for the event table, expected to be a few dollars per month.
- If volume outgrows the free tier, Exo can sample or aggregate before forwarding to the adapter while keeping full-fidelity funnel counts in Convex.
Status
- Planned (roadmap: product-analytics).
- ADR 0006 is on
mainand is not yet onstaging(read on main).
Source: content/docs/stack/observability.mdx
10 · Continuous integration
exo-verify type-checks and tests every change before it deploys and checks live Staging and Production routes every 15 minutes; Vitest runs the code checks. Playwright browser journeys on Staging are planned.
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.