← All case studiesBuilt by our team · 2026, early access

AI product analytics platform

An app's marketing, product and engineering data in one picture, for apps under $10k in monthly revenue. Connect Firebase once and it reads GA4, RevenueCat and Mixpanel, runs experiments on Remote Config, sends push to cohorts, and explains the numbers. The AI explains and suggests. It never decides.

Surface
Web app, plus tracker SDKs for Flutter, iOS and Android
Model
Gemini Flash, in two places in the whole codebase
Plans
Free, €49 or €149 a month
Status
Early access
7read-only tools for the assistant, each bound to one app
3native tracker SDKs sending one ingest format
28days: every suggested experiment must be able to settle within them
0model calls triggered by the hourly data sync
The challenge

Small app teams have the data. They don't have the analyst.

A two-person app business has GA4, RevenueCat and maybe Mixpanel, each with its own dashboard and its own idea of what a user is. What they need is one picture, an honest answer to "what changed", and experiments small enough that their traffic can actually settle them.

What we did

Code decides what is true. The model explains it.

Every page and every assistant answer reads the same stored results, so the chat and the dashboard never disagree. Suggested experiments are filtered twice by code: before the model, down to goals the app's traffic can settle in 28 days, and after, to drop anything naming an unknown event or a key already in use.

How a question gets an answer

  1. 01
    Connect once
    One Google sign-in per app finds Firebase and GA4. RevenueCat and Mixpanel connect with a key, encrypted at rest.
  2. 02
    Sync every ten minutes
    A Postgres cron job syncs each app, sends scheduled pushes and raises experiment alerts.
  3. 03
    Store the answers
    Results are stored and served stale while they refresh, so pages keep working when Google is down.
  4. 04
    Ask the assistant
    Gemini Flash with seven read-only tools bound to one app, answering only from what the tools return, with its reasoning shown as steps.
  5. 05
    Suggest what to test
    Code finds the goals your traffic can settle in 28 days, the model phrases at most three ideas, and code filters them again.
  6. 06
    Ship the winner
    A significance test and a split check, then the winning value written to Remote Config, and watched afterwards.

The four tests, on this project

We judge every product on the same four questions. This is how this one answered each of them.

01 · Design
Does it feel right?
  • The assistant shows its reasoning as named steps, such as "Reading retention cohorts", then the answer.
  • A demo workspace answers every Google, RevenueCat and push call from a fixed model, so it can be tried without connecting anything.
  • One bulletin for the whole studio, one card per app.
02 · Mobile and backend
Does it hold up?
  • Pages read stored answers and refresh them in the background, so they keep working when Google is down.
  • Ingest is capped per request and per source, keys are compared in constant time, and duplicates are ignored.
  • No Stripe key means no paywall; no AI key means no assistant. It degrades instead of crashing.
03 · AI, retrieval and evals
Is it right?
  • The assistant answers only from tool results, and says whether a number counts GA4 installs or tracked accounts.
  • No tool accepts an app id, so the model cannot ask for another customer's data.
  • Event data is treated as data: names must match a pattern, and free text is cut to one line.
04 · Metering and pricing
Led here
Does it pay?
  • Revenue comes from RevenueCat, never from GA4's estimate.
  • Every experiment has a sample size, a significance test and a split check that blocks "Ship" when traffic is uneven.
  • After shipping, the winner is watched: it held, faded or reversed.

Three decisions we made

01
One read path
Dashboards, assistant tools and the bulletin read the same stored answers, keyed on every input that changes the result. One number, everywhere.
02
Feasibility is computed
The model only sees goals and effect sizes the app's traffic can settle within 28 days. It cannot suggest a test that would never finish.
03
A coarse cache, on purpose
Ideas are cached on the app's events and decisions, not its metric values. Numbers move every hour; the model bill does not.

What we are adding next

A spend cap per organisation for the AI features. The code already marks it as the next limit to lift, with the upgrade path written next to it.

Churn and lifetime value as first-class metrics, computed from RevenueCat and the tracker rather than estimated.

What this means for you
If you want AI to explain your numbers without making them up
The model phrases, code decides. We build AI on top of real product data where every number traces back to a query, and where tenancy is enforced in code, not in a prompt.
Closest track: Stop the churnSee the two weeks
What we can build for you
  • AI assistants over your own analytics, grounded in tool results
  • Experiments with real statistics, shipped through Remote Config
  • Event tracking SDKs for Flutter, iOS and Android
  • Multi-tenant data safety for AI tools
Stack
Next.jsReact 19TypeScriptSupabaseDrizzleVercel AI SDKGeminiGA4 Data APIFirebaseRevenueCatStripeshadcn/ui

Want this in your product?

Thirty minutes, no deck. Tell us what you are building and which of the four tests worries you most. We say no when we are not the right people.