
PostHog
Open-source product analytics, session replay, feature flags and experiments you can self-host.
Web Analytics
PostHog is a product and web analytics platform with autocapture event tracking, session replay, feature flags, experiments, surveys, error tracking, a data warehouse and data pipelines. It ships an open-source Docker Compose deployment that runs the same application on a single Linux machine, alongside a managed cloud with a permanent free tier. The vendor is explicit that self-hosting is for hobby and small deployments: self-hosted instances are officially unsupported, receive no commercial support and no recovery from data loss, run on one machine the vendor says is unlikely to scale past a couple of hundred thousand events, and get free-plan functionality only because all paid-plan features are cloud-only.
Key features
- Autocapture records pageviews, clicks and form submissions
- Funnels show drop-off across a series of actions
- Pre-built dashboard for visitors, referrers and traffic
- Session replay of clicks, scrolls, inputs and console logs
- Feature flags for phased rollouts and kill switches
- Experiments with Bayesian and frequentist engines
- Open-source self-hosted (Docker Compose)Free self-hosted
- LicenceOpen source · MIT ExpatDeploymentSelf-hosted
Limits, notes & source
Open-source self-hosted (Docker Compose)
- Limits
- Free to run, but capped at free-plan functionality: the vendor states all paid-plan features are cloud-only. That excludes group analytics, data pipelines, insight and dashboard subscriptions, advanced paths, lifecycle insights, correlation analysis, one-year retention, more than two alerts, downloading recordings, and multiple-question or recurring surveys, as well as SAML, RBAC, audit logs, SSO enforcement, white-labelling, unlimited projects and custom data retention.
- Notes
- The vendor states the Docker Compose deployment is free and MIT licensed, and that self-hosted deployments are officially unsupported with no commercial support and no recovery from data loss. Single machine only, equivalent to 4 vCPU, 16 GB RAM and more than 30 GB storage; new Kubernetes deployments of the former paid open-source product are no longer supported. The repository is not entirely MIT: everything under the ee/ directory is covered by a separate Enterprise licence that requires paid user seats for production use.
- PostHog Cloud (Free)Free self-hosted
- LicenceLicence unverifiedDeploymentManaged cloud available
- PostHog Cloud (Pay-as-you-go)
- LicenceLicence unverifiedDeploymentManaged cloud available
Limits, notes & source
PostHog Cloud (Free)
- Limits
- A permanent monthly free tier, not a trial: 1 million analytics events, 5,000 session recordings, 1 million feature flag requests, 100,000 exceptions, 1,500 survey responses, 1 million data warehouse rows, 10,000 data pipeline events and 10 GB of logs. Includes 1 project, 1-year retention, unlimited team members and community support; usage stops at the limits so the account cannot be charged by surprise.
- Notes
- The vendor describes this as not a trial, with no credit card required. Hosted in the US (Virginia) or EU (Frankfurt). Platform packages such as SSO enforcement, SAML, RBAC, audit logs and unlimited projects are not included.
- Source
- posthog.com/pricing ↗
PostHog Cloud (Pay-as-you-go)
- Limits
- Same monthly free tier, then usage billed per unit: 6 projects instead of 1, 7-year data retention, and email support. Published rates include 0.000198 USD per identified event after the first million, 0.00005 USD per anonymous event and 0.0001 USD per feature flag request. Platform packages are sold separately at 250 USD and 750 USD per month.
- Notes
- Billing is per unit of usage rather than per seat, per account or per instance, so no single amount, currency or unit is recorded; the published rates are carried here instead. Annual plans and volume discounts exist through sales with no published minimum.
- Source
- posthog.com/pricing ↗
Pros & cons
Strengths
Trade-offs
Show 1 more
- The repository is not all MIT: content under ee/ needs a paid Enterprise licence. Source
PostHog replaces
Products this app is built to take over from, with the vendor's own evidence.
Moving your content across: Documented per product: what you do on the side you are leaving, what this app does with the result, and what does not survive the trip. Every step links to the page that documents it.
- ExportIn Mixpanel: create a service account under Organization Settings → Service Accounts and keep its username and secret plus the Project ID; users come as a CSV of all columns.Source
- ImportPostHog offers a managed migration that exports from Mixpanel itself, or the community tool stablecog/mixpanel-to-posthog run with those credentials in a .env, mapping $mp_web_page_view to $pageview.Source
- CaveatThe docs call that tool community-built — "test for yourself and use at your own risk" — and historical imports need a paid product analytics plan on PostHog Cloud.Source
- ExportIn Amplitude: the Export Data button in organization settings, the Export API (API and secret key, zipped JSON), or the S3 export when the data is bigger than the export limit allows.Source
- ImportImport with PostHog's Python SDK or the capture batch API and historical_migration set to true — the vendor notes other libraries do not support historical migrations yet.Source
- CaveatEvents must be converted to PostHog's schema first: '[Amplitude] Page Viewed' becomes $pageview, '[Amplitude] Page Location' becomes $current_url, event_time becomes an ISO timestamp, people properties move into $set.Source
- CaveatAnonymous device IDs need an alias call to attach them to user IDs, and PostHog blocks bot traffic by default where Amplitude does not, so imported event and DAU counts come out lower.Source
- CaveatThe Python client's ingest queue holds 10,000 events; the vendor's own script calls posthog.flush() every 5,000, or the queue fills and the migration stalls.Source
- Google AnalyticsThe vendor publishes a migration guide converting GA4 BigQuery exports into PostHog's event schema.Source
- ExportGoogle Analytics' own historical export is thin, so PostHog's guide links GA to BigQuery (Admin → Product links → BigQuery links); allow more than 24 hours before data appears there.Source
- ImportThen query the analytics_<property> events tables with the BigQuery Python client, convert event_name and event_params to PostHog's schema and capture with historical_migration=true.Source
- CaveatThe three-step path is a script you write: event names, timestamps and nested params all have to be converted, and a paid product analytics plan unlocks historical imports.Source
- LaunchDarklyA step-by-step guide migrates LaunchDarkly flags and experiments into PostHog via the API.Source
- ExportPull the flags and experiments from LaunchDarkly's API with an API key, using the project key from the projects tab and the environment key from that project's environment settings.Source
- ImportA script converts them and creates each one through PostHog's API with a personal API key that has write access to experiments and feature flags; variations become variants and values become payloads.Source
- CaveatThe guide is explicit that the conversion is manual: release conditions and goals must be edited by hand, and the client swaps LDClient.initialize/variation for posthog.isFeatureEnabled.Source
Similar apps
Other entries from this catalogue in the same category, with a free self-hosted edition first and then the higher star count. Only software we publish appears here — each card opens the entry, where its price, licence and check date are recorded.
Umami
Web Analytics
Cookie-free, privacy-first web analytics you can self-host or run on the vendor's cloud.
Plausible Community Edition
Web Analytics
Cookie-free web analytics; the free Community Edition is the self-hosted AGPL release.
Matomo On-Premise
Web Analytics
Web analytics you host yourself, with a free On-Premise Community edition.