Product analytics built on events rather than page views. You send it named actions with properties, and it answers funnel, retention and cohort questions over them without you writing SQL.
Build me product analytics that replace Mixpanel — and know why this is ALMOST. The reports are conceptually simple. What you are paying for is **funnels, retention and cohorts that recompute in seconds over hundreds of millions of events**. That is a columnar store and careful query design, not a table in a relational database, and it is the honest ceiling on a homemade version. At a few million events a month this is comfortable; at a few hundred million it is a different project. STACK - Node 20+ with Fastify - SQLite through better-sqlite3 to begin with, and DuckDB or ClickHouse when the volume demands it. Design the schema so that move is a copy rather than a rewrite - A tracking script under 6KB gzipped, plus server-side ingestion - Server-rendered dashboard, charts as inline SVG - Caddy in front THE DATA MODEL - events: id, name, distinct_id, anonymous_id, session_id, properties_json, path, country, device, browser, os, bot, at — one wide table, narrow columns for what you filter on, the rest in a map - users: id, distinct_id, first_seen_at, last_seen_at, properties_json - groups: id, kind, key, properties_json — because business products are used by an account, and most questions are really about the account rather than the person - identities: anonymous_id, distinct_id, at — the stitch that makes events before signup belong to the person afterwards - definitions for funnels, cohorts and saved reports. Never stored results — everything computes at query time or it goes stale IDENTITY STITCHING - An anonymous identifier per browser until the person is identified, then a stitch row binding the two - After stitching, earlier events belong to the user, and every report must honour that retroactively — which is why events keep both identifiers rather than being rewritten - Property values are recorded on the event as well as on the user, so 'which plan were they on when they did this' is answerable. That distinction between event properties and user properties trips up every homemade version THE THREE REPORTS THAT MATTER - **Funnels**: ordered steps with a conversion window. Strict or loose ordering, chosen explicitly and stated, because the two give very different numbers. Break down by any property, and show where people went instead of the next step — usually the most useful thing on the screen - **Retention**: of the people who first did X in a period, how many did Y in each following period. Say which definition is in use, because there are several and they disagree - **Cohorts**: a saved definition of people who did something with certain properties, computed at query time and usable as a filter everywhere else MAKING IT FAST - Partition by day and order by the columns you filter on. Those two choices decide whether a month of data answers in a second or a minute - Keep property cardinality under control: a property with millions of distinct values as a real column will destroy the index. Keep those in the map - A funnel is a self-join or a window function over one user's ordered events. Write it once, carefully, and test it against a known answer - Sampling as a deliberate, labelled option for exploratory queries — never silently BOTS AND HONESTY - Flag, never drop, and exclude through a view - The script executing is the strongest humanity signal; record it - Every metric has its definition written beside it. These numbers get shown to people who act on them, and a figure you cannot explain in a sentence is one that will be doubted INSTRUMENTATION - Named events with properties, defined in one place in your code, with a schema. Autocapture is a starting point; named events are what makes analysis possible - Server-side ingestion as well as browser, because the important events — a payment, a renewal — happen on the server - Never capture the contents of an input, and never send personal data as a property without deciding to OPERATIONS - .env: DATABASE_PATH, BASE_URL, HASH_SALT, GEOIP_DB_PATH, SESSION_SECRET - Migrations on boot, each once; nightly backup off the machine - Health endpoint WHAT MATTERS MOST Identity stitching and the funnel query. Get the anonymous-to-known join right before any report exists — every funnel and every cohort is wrong without it — and write down the volume at which you would move to a columnar store.
What you lose
- Funnel, retention and cohort reports that recompute in seconds over hundreds of millions of events
- A query builder non-engineers actually use, so analysis stops going through you
- Identity resolution that stitches anonymous sessions to a user once they sign in
- Session replay and impact analysis wired to the same event stream
- Data governance: event schemas, deprecation and a lineage of who changed what
If you would rather not build
- Amplitude — the other paid product analytics suite
- Heap — paid, captures everything automatically instead of named events
What it costs
as published on their pricing page
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $24/mo | — | — |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
PostHog
$0Product analytics, session replay and flags in one self-hostable stack.
PostHog/posthogfree · open source
Countly
$0Event analytics for web and mobile, with an on-premise deployment.
Countly/countly-serverfree · open source
Why this verdict
our own opinion · changed only by a person
47/100
Verdict kinda at 47: ingest and the three core reports are a weekend with Postgres and Timescale, and for one product at modest volume that is genuinely enough. What does not survive the build is speed at scale and the moment a non-engineer wants to ask their own question.
History
tracked since 9 Aug 2026 · nothing is ever overwritten
Questions about Mixpanel
answered from the record above
Is Mixpanel free?
No — the plan we track is $24 a month. Growth from $24/month at low event volume; the price is a function of monthly tracked events and climbs steeply past a few million.
Can you replace Mixpanel by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 47 out of 100, build time a weekend. Read what you lose before you decide.
How much does Mixpanel cost?
$24 a month on Growth — $288 a year. Recorded 9 Aug 2026.
What do you lose by replacing Mixpanel?
Funnel, retention and cohort reports that recompute in seconds over hundreds of millions of events; A query builder non-engineers actually use, so analysis stops going through you; Identity resolution that stitches anonymous sessions to a user once they sign in; Session replay and impact analysis wired to the same event stream; Data governance: event schemas, deprecation and a lineage of who changed what. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Mixpanel?
Yes: PostHog, Countly. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

