GSH

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

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.

Pros & cons

Strengths

  • Self-hosting is free: the vendor publishes a Docker Compose deployment under an MIT licence. Source
  • One install command brings up the full stack and issues the TLS certificate. Source
  • The cloud free tier is permanent, not a trial: 1M events and 5k recordings monthly. Source

Trade-offs

  • All paid-plan features are cloud-only, so self-hosting is limited to free-plan functionality. Source
  • Self-hosted deployments are officially unsupported: no commercial support, no recovery from data loss. Source
  • Needs a 4 vCPU / 16 GB RAM machine; Kubernetes deployments are no longer supported. Source
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.

  • MixpanelThe vendor states PostHog is a great alternative to Mixpanel and documents a direct import of historical Mixpanel data.Source
    • 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
  • AmplitudeA managed migration connects to Amplitude with API credentials and remaps events, people and groups.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.

Free self-hosted38,763Source

Matomo On-Premise

Web Analytics

Web analytics you host yourself, with a free On-Premise Community edition.

Free self-hosted21,861Source