OpenPanel vs PostHog
Pick PostHog for an all-in-one developer platform; pick OpenPanel for product and web analytics with a 3 KB script and one-server self-hosting.
Pick OpenPanel if
- Teams that use PostHog mainly for events, funnels, retention and session replay
- Sites where script weight matters: storefronts, landing pages, content sites
- Products that want cookie-free analytics without a consent banner
- Teams that want to self-host on a single server with Docker Compose
Pick PostHog if
- Teams that rely on feature flags and A/B experiments with significance testing
- Teams that want surveys and error tracking from the same vendor
- Analysts who want to query raw data with SQL (HogQL)
- Small products that fit inside PostHog's 1M free events a month
Carl-Gerhard LindesvärdPrices checked Oct 18, 2026
The differences that matter
Measured or taken from each vendor's docs in October 2026.
| Topic | OpenPanel | |
|---|---|---|
| Browser script (gzipped) | 3.3 KB | ~105 KB (posthog-js dist/array.js) |
| Cookies by default | None | localStorage + first-party cookie |
| Cost at 1M events/month | $90 (replay included) | $0 analytics; replay billed separately past 5K recordings |
| Cost at 10M events/month | $350 | ~$324 for analytics events alone |
| Self-hosting | Supported. Docker Compose: ClickHouse, Postgres, Redis | Hobby deploy, officially unsupported. ClickHouse, Kafka, ZooKeeper, Redis, Postgres, MinIO |
| Feature flags, experiments, surveys | No | Yes |
Funnels, retention and profiles, with no seat pricing
Pick the events, see where people drop off, who comes back and what each user did. Every report is in every plan; you pay for events, not for the people who look at them.
- Funnels and conversion
- Session or profile based, broken down by any property or cohort.
- Retention and cohorts
- A cohort grid with a weighted average that skips weeks that have not happened yet.
- Profiles and groups
- Every user with sessions, events and revenue, and the company they belong to.
Run it yourself for free
OpenPanel is AGPL and ships as Docker Compose with ClickHouse, Postgres and Redis. One install script, no event limits, your servers, and the same product as Cloud.
- One command
- The install script asks a few questions and brings the stack up.
- The full product
- Self-hosted releases follow Cloud by a month or two.
- Your data stays
- Nothing leaves the box unless you export it to S3 or GCS.
No cookies, so no banner
A visitor is a daily-rotating hash of user agent, IP and site. Nothing is stored in the browser, Cloud data stays in the EU, and the tracker is a few kilobytes.
- Cookie-less by default
- No consent banner for analytics. The salt changes every day.
- EU cloud
- Hosted in Germany, with a GDPR data processing agreement.
- Light SDK
- About 3 KB gzipped. Replay loads separately, only if you turn it on.
Where OpenPanel fits better
Four situations where the switch pays off.
- You only use PostHog for analyticsIf your PostHog usage is events, funnels, retention and replay, OpenPanel covers it with one price and one script.
- Page weight shows up in your Core Web VitalsReplacing a ~105 KB bundle with a 3.3 KB script is one of the cheaper performance wins on a content or commerce site.
- You want analytics without a cookie bannerOpenPanel stores nothing in the browser by default. PostHog needs a persistence change, and turning persistence off makes every page load a new anonymous user.
- You want to self-host and have support for itOpenPanel's self-hosted version is the full product on a three-service Docker Compose stack. PostHog's hobby deploy is unsupported and limited to free-plan features.
Where PostHog is better
If any of these matter to you, PostHog is the better pick.
Feature flags and experiments
PostHog ships feature flags and A/B tests with significance testing in the same product as its analytics. OpenPanel can break any report down by a variant property, but it has no flag delivery and no experiment statistics.
Surveys, heatmaps and error tracking
PostHog has all three, each with its own free allowance. OpenPanel has none of them, so you would add a separate tool for each one you need.
SQL in the dashboard
HogQL lets you write SQL against your events from the PostHog UI. OpenPanel has a visual report builder. Self-hosters can query ClickHouse directly, but there is no SQL editor in the dashboard.
A free plan for small products
The first 1M analytics events each month are free on PostHog. OpenPanel Cloud has no free plan: you get a 30-day trial, and self-hosting is the free option.
Pricing at real volumes
PostHog is cheaper for small products and roughly the same as OpenPanel at 10M events, if you only count analytics events. The difference is what else gets metered.
Flat monthly tiers by event volume
You pick an event volume and pay a flat price: $90/month for 1M events, $350/month for 10M. Session replay, dashboards, users and projects are not metered separately. There is no free cloud plan: you get a 30-day trial, and self-hosting is free with no event limit.
Every tierProduct analytics is free for the first 1M events a month, then $0.00005 per event up to 2M and $0.0000343 per event from 2M to 15M, so 10M events cost about $324. Session replay, feature flags, surveys and error tracking each have their own free allowance and meter.
PostHog pricing page| Events a month | OpenPanel | PostHog |
|---|---|---|
| 100k events | $20 | $0 |
| 1M events | $90 | $0 |
| 10M events | $350 | about $324 (analytics events only) |
Feature comparison
Where both have a feature, the depth can differ. Notes explain the gaps.
| Feature | OpenPanel | |
|---|---|---|
| Web analytics | ||
| Pageviews, visitors, sessions, bounce rate | ||
| Referrers and UTM breakdowns | ||
| Realtime view | ||
| Product analytics | ||
| Custom events and properties | ||
| Funnels | ||
| Retention and cohort tables | ||
| User flows (sankey) | ||
| Saved cohorts as report filters | ||
| Group (B2B account) analytics | ||
| Revenue tracking | ||
| SQL queries on raw data PostHog has HogQL. OpenPanel has a visual report builder; self-hosters can query their own ClickHouse directly. | ||
Show 13 more featuresShow fewer
| Feature | OpenPanel | |
|---|---|---|
| Beyond analytics | ||
| Session replay OpenPanel replay is opt-in, loads as a separate script and has no per-recording meter. | ||
| Feature flags | ||
| A/B experiments with significance In OpenPanel you can break any report down by a variant property, but there is no experiment engine or statistics. | Variant breakdowns only | |
| Surveys | ||
| Error tracking | ||
| Heatmaps | ||
| Privacy and hosting | ||
| Cookie-free by default | ||
| EU cloud hosting OpenPanel Cloud runs in Germany. PostHog offers an EU region. | ||
| Supported self-hosting PostHog's own docs call self-hosted deployments officially unsupported. | ||
| Data in and out | ||
| Export API | ||
| Raw event export to S3 or GCS OpenPanel writes JSONL every minute to S3-compatible storage or GCS; PostHog has batch exports. | ||
| Slack, Discord and webhook alerts | ||
| MCP server for AI assistants | ||
Technical comparison
For the developer who has to install and run it.
| Topic | OpenPanel | |
|---|---|---|
| Browser script | 3.3 KB gzipped (op1.js) | ~105 KB gzipped core bundle; replay and other extensions load on topMeasured October 2026 against the live files. |
| SDKs |
|
|
| License | Platform AGPL-3.0, SDKs MIT | MIT, except the separately licensed ee/ directory |
| Self-hosted stack | Docker Compose with ClickHouse, Postgres and Redis | Docker with ClickHouse, Kafka, ZooKeeper, Redis, Postgres, MinIO and CaddyPostHog asks for at least 4 vCPU and 16 GB RAM for its hobby deploy. |
| Self-hosted features | The full product; releases arrive a month or two after Cloud | Free-plan features only; paid-plan features are Cloud-only |
| Event storage | ClickHouse | ClickHouse |
Moving from PostHog to OpenPanel
The tracking APIs map almost one to one. There is no PostHog importer, so plan to run both tools side by side until OpenPanel has enough history.
- 1
Install the OpenPanel SDK next to PostHog
Add the web script or the framework SDK with your client ID. Keep PostHog running for now.
- 2
Map your calls
posthog.capture(name, props) becomes op.track(name, props). posthog.identify(id, props) becomes op.identify({ profileId: id, ...props }). posthog.group() becomes op.setGroup().
- 3
Rebuild the reports you use
Recreate your main funnels, retention charts and dashboards in OpenPanel.
- 4
Compare numbers for two weeks
Check that event counts and funnel conversion match between the two tools before you trust the new one.
- 5
Remove PostHog
Drop the PostHog snippet and keep your PostHog project read-only if you still need old data.
When OpenPanel is the better PostHog alternative
If your team uses PostHog to track events, build funnels and retention charts and watch session replays, and never opens feature flags or surveys, you still carry the rest: a larger script, a heavier self-hosted stack and a separate meter for each product.
The script size difference is large. OpenPanel's web script is 3.3 KB gzipped. PostHog's main browser bundle (posthog-js 1.438, dist/array.js) is about 105 KB gzipped when we measured it in October 2026. On a marketing site or a storefront, that is weight your visitors download before anything else runs.
Privacy defaults differ too. PostHog's JavaScript library stores its state in localStorage plus a first-party cookie unless you change persistence. OpenPanel sets no cookies: it identifies anonymous visitors with a daily-rotating salted hash, so you can run it without a consent banner in most setups.
PostHog is the better choice if you want one vendor for analytics, feature flags, A/B experiments with statistics, surveys and error tracking, or if you want to write SQL against your data. OpenPanel has none of those products, and we would rather you know that before you migrate.
Questions about switching from PostHog
Short answers, with the trade-offs left in.
Try it on your own data
The steps above are what switching from PostHog takes. 30-day free trial on Cloud, or self-host for free.
Cloud from $2.50 a month, or self-host for free.