Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Openpanel – An open-source alternative to Mixpanel (github.com/openpanel-dev)
244 points by lindesvard 11 months ago | hide | past | favorite | 99 comments
I have created an open-source alternative to Mixpanel and will explain a bit about why I decided to do this.

Mixpanel is a GREAT tool and quite easy to understand (compared to GA4 and similar). I have used Mixpanel extensively for one of my React Native apps, but the last invoice was $300, which was way over my budget. I think I was paying for MTU (monthly tracked users), which was around 7000-10k users.

However, a downside of Mixpanel is that it is purely a product analytics tool; you don't get any basic web analytics similar to what GA4 or Plausible offers.

Therefore, I have combined the best features of Mixpanel and Plausible to create what I believe is the ultimate experience in an analytics tool (product and web).

The focus has always been: it should be easy yet also powerful. This has been a challenging balance, but I think I have managed to keep it somewhat simple.

Key Features: - Privacy-first - Visualize your events like Mixpanel - Plausible-like overview - Self-hostable - Better support for React Native than Plausible - Real-time (no delays for events) Ability to access all individual events and sessions

It's currently in beta and completely free during the beta period.

Give it a spin: https://openpanel.dev




REALLY looking forward to trying this. Mixpanel has the most obscure pricing model of any SAAS i've ever tried to integrate with... When we 'upgraded' from their free tier to a paid tier we were DOWNGRADED from 20M events a month to 10K events a month. Does that make any sense??? They talk about 'transparent and easy to understand pricing', but immediately after I upgraded to a paid plan we were downgraded from 20M events to 10K events.

We actually immediately cancelled our paid plan and went back to their free tier. To match what they provide in their free tier (20M events), the cost is $2,289 USD / month (no thanks). https://mixpanel.com/pricing/plan-builder/?dcv=growth

So basically we can either pay $2,289 USD / month, or pay nothing, and still get the same number of tracked events. Just bizzare... We've moved on, and I've been on the search for an alternative ever since.


omg - I tried to sell a client into using mixpanel for about three months.

I could never explain (or honestly understand) events, and even though I had raw server data, g analytics data and cloudflare analytics data - I still don't understand what constitutes an event or number of events, or what it may cost.

So we just killed the google and cloudflare stats and never signed up for the free tier in the firs place.

Free stats are fine.


The pricing modal is a black hole sadly... I hope you will give openpanel a shot


Building a helm chart right now to see if I can get it self-hosted in our cluster... :D


Ping me on twitter if you need assistans! https://x.com/CarlLindesvard


This doesn't seem to be buffering inserts to ClickHouse: https://github.com/Openpanel-dev/openpanel/blob/c90848765a6a...

So any major website will have problems with it. I would suggest moving this into a stream (NATS, Kafka) or just having some sort of service that buffers events, then offloads to Clickhouse in batch.


Correct! Currently no batching but no need to make things complicated for now.

Can extend the current redis queue to batch request or clickhouse batch engine.

Looking forward to have these problems hehe.

Please DM if you want to chat about best approach!


Or enable async inserts on the ClickHouse client, which won't require changing to the buffer table engine.

https://clickhouse.com/docs/en/optimize/asynchronous-inserts


Have read about this, but totally forgot about it! Will try it out!


Won't this be a problem as soon as a website reaches, say, 600 RPS? Which is not much.


Dunno, that’s already a fairly big website. The one I was working on in the past with 15k customers did around 15RPS. The large enterprise system I work on with 3k users does slightly less than that. That covers an awfully large amount of use cases already, and then you can get 30x more?


I have time to grow. Don’t think I’ll hit this level just yet.


As someone using clickhouse, for similar event ingestion stuff - I’d lean towards implementing it sooner rather than later.

It’s not too hard, and it can surprising _how much more_ Clickhouse likes bulk queries.


Sure thing! Will look into it more during the coming weeks. Feels like I have the most of the dashboard complete now.

But I really want to start giving the native app some love as well


This is the correct answer! any early project needs to make big trade-offs and premature optimisation has killed many projects. You'll never please everyone (especially on HN) but you're not making it for everyone


This is great.

Analytics space has many players in all shapes and sizes.

Mixpanel, Amplitude, Google analytics, simpleanalytics, Posthog, usefathom, plausible.

If you include UI tracking then pendo.io, Fullstory, LogRocket.

Many of them VC funded horses.

As an ex-Mixpaneler and Mixpanel customer now, I wish Mixpanel wasn’t this expensive for a few 1000 users. But like any company in an economic market, they’ll charge for what customers will bear.

Competition is wonderful. May the force be with you.


Im a little fart in space for mixpanel but maybe, just maybe I can push their prices a bit!


I've considered self-hosting plausible but ultimately decided to pay for subscription instead, because I think self-hosting would cause more in terms of VPS hosting.

The minimum requirements (4GB RAM) are too high because of the need to run two databases:

https://github.com/plausible/community-edition/blob/v2.0.0/d...

4GB RAM costs $24/month on DigitalOcean: https://www.digitalocean.com/pricing/droplets

In comparison Plausible lowest tier is only $9/month.

I think this project is not so different in terms of minimum spec.

Would love to hear how others deal with the cost of self-hosting. Does it get cheaper as you self-host more apps? Do you pool with friends?


For way less than that you can get a 16gb/8vCPU ARM in Hetzner [1], and since it's for a analytics service, it doesn't matter it's not hosted close to your users.

[1]: https://www.hetzner.com/cloud/


And if you did want something closer, Hetzner offers USA based vCPU options that are still quite affordable compared to DO.

There's a 4GB option for 9 Euros.

I recently migrated my personal projects from DO to Hetzner for this reason


I had no idea DigitalOcean pricing has become so uncompetitive.

I remember back a few years it was praised by people for how cheap it was.


It's been for a while


Thanks. Will check it out!


Self hosting in the cloud can be a bit counterproductive price wise.

You can run docker on a $100 USFF i7 pc and stuff 32G-64G and a big SSD in for cheap. That'll run for years and you could add a second host for redundancy. Depends on your maintenance and failure tolerance.

Or you probably already have some spare hardware, maybe an old laptop kicking around.


Static ip is the problem where I live.


You don't have to worry about that anymore if you don't want to. Cloudflare has a Tunnel service where your service connects to CF.


You can use a free DDNS like DuckDNS.

https://www.duckdns.org/


Cool! Didn't know there's a free service. Gonna give it a try this weekend!


If you pair that with nginx reverse proxy you can set all of your homelab stuff up with a dns name and ssl certificate and get rid of those annoying security messages.

Pair that with a URL shortener like Yourls and you can have easy, convenient short names to access your self hosted systems.


if service permits serverless than you can host it cheaply on free tier of serverless platforms.


This looks great! As an engineer who has used Mixpanel at multiple companies it has always annoyed me that what you get for what you pay seems quite poor, so I'm very happy to see some alternatives.

I'm also happy to note that you are from (the wrong part of ;)) Sweden.


Glad to hear!

Foot note: And to be clear, I live in Stockholm but from Skåne ;)


I run a saas where we host a number of websites, can I use this for us to track visits, events etc across multiple sites? We want aggregated results not per site metrics


I have plans to support this!


I’m looking for a tool like this. Previously used mixpanel (under free startup package), but dropped it after that expired because it was going to be $x,000 per month. (Tho I believe they significantly altered their pricing shortly after)

But either way, we’d never spent enough time setting it up, and this weren’t getting a huge amount of value from it.

We also use plausible, for web facing. But we need something more detailed for analytics within our product.

I like the sound of this. But from using the demo dashboard I didn’t see the value I’d get from it.

It was clear if I could track a user (or segment of users) journeys.

Or see the journey of all users who completed a specific event.

Can I create funnels?

Can I measure performance over time easily?

Can I put events into the timeline? (feature releases)

Implementing a tool like this is a big commitment, so I’d need to be more convinced it’s the right tool for our needs before I took the plunge. I’d also start with the hosted solution, but I’d choose it because we could self host in the future if we felt necessary. An escape hatch.


I hear you! The "demo" is basically just a demo for the shareable overview (plausible like screen).

Here you have some screenshots what you can do: https://imgur.com/a/hxUPsvk

Features: - Create funnels, linear, bar, histogram, map, pie, area charts based on your events (similar to mixpanel reports) - List of all events (filter by any data point you send) - List of all your users (go into a specific users to see what they did) - Retention (if you use this you need to provide a user id) - Realtime dashboard


Congrats on the release, I'm really impressed with OpenPanel so far!

I have also been building a similar product for a long time (UXWizz), focused more on self-hosting, quantitative data and targeted at low to medium trafficked websites, but it is a paid product.

How do you think monetization will pan out in the long-term with a free self-hosted option? I know PostHog also had a free self-hosted version, but since the self-hosted version competes directly with their main business model, they had to stop support for it.

I also considered open-sourcing mine, but decided to keep it self-hosted only and paid. I feel like if I sell a hosted version, then my business goals won't be aligned with the goal of making the self-hosted version as good as it can be, without feature locks.

I hope you can maintain this awesome pace and improve your product for many years to come!


THanks for your kind words. There will always be people who wants to use cloud instead of self-hosting (me included if possible).

So I hope this will be feasible. Worst case scenario is to keep some features exclusive for the cloud solution, but fingers crossed I get a good mix of cloud users and self-hosters.


If we use your hosted version, what will the pricing be when it's out of beta.

I always think these services should basically be like 2x cost of underlying S3 or whatever storage you're using, but they end up being like 100x+


2x cost of S3 does not include whatever compute cost that is also incurred nor the cost of dev's time, marketing costs, or any other business expenses. When running a business, you see why the markups are applied for much less sinister reasons than maximizing profits. if you want to sustain your business on sales alone without being propped up by investment, you have to price your product/service appropriately to cover all business expenses.


Ya, I understand that. That’s why I said 2x S3


Great points


So you can start by using the beta if you want to try it. I dont think I'll take any money until after summer (I have no rush here)

Currently the pricing looks like this: No tiers, you get everything. You only pay for events. So everything except events are unlimited.

5000 events - free

10,000 - $5

100,000 - $10

200,000 - $20

500,000 - $40

1,000,000 - $60

2,000,000 - $80

5,000,000 - $120

10,000,000 - $150

I hope to push the pricing model for things below 1m events. But its so hard for me to set a pricing model before getting to know how much resources I need.

/ edit format


I pay around $180/m for Clicky for 800k events per day. Looking forward trying your service and eventually try to self host it. Thanks!


800k a day? That’s a lot of events. Need to start optimizing things then


That's quite a good deal for 24M events per month, especially if they have a long retention time (2-3 years).


The group-level / account-level stuff is pretty big for B2B SaaS companies to be able to consider using it. And it's tucked away on one of Mixpanel's higher price plans.


Have missed this feature. Would love to hear more and how I could implement this feature.

Is it a flag/field in the SDK that tells you I’m from a specific company or is it some black magic?


It lets you associate users to companies so you can look at analytics from a user or company perspective.

ie, how many individuals are using this feature or what’s the average usage of this feature for a company.


They usually use something akin to Segments “group” event type, which associated a user id with (depending on the platform) one or more “group ids”. These could correlate to company/team/region/etc.

Having implemented something similar-ish recently, we went the route of requiring callers to ”do the work” of telling us which group the user belongs to. Figuring it out is unnecessarily difficult and prone to issues.


I like this approach a lot. Only downside is that you cannot dynamically change groups and what not in a later stage.

But if each events were associated directly to a group (by the caller) this would be quite easy to implement.


Yeah generally the customer will specify which "group" a user belongs to when calling your SDK/API.

Mixpanel's docs: https://docs.mixpanel.com/docs/data-structure/advanced/group...

Segment's docs: https://segment.com/docs/connections/spec/group/

In B2B SaaS, it's a lot more important to understand which customers are using which features, not which users. One customer can have many users, and one user can belong to multiple companies.

This is pretty much a must have for B2B SaaS even though it's always tucked away in expensive plans with tools like Mixpanel and Amplitude.


A few months back we were also planning to start a similar project which would include an interactive AI that can give answers / charts etc. based on user prompts from the provided events. But we scraped that project and started something else entirely. Glad to see this project - would definitely try it out when you have the self hosting option ready.


I have thought about adding AI. But don’t want to add it just for the sake of it.

Hoping to find good use cases.

Will make a big update when it’s easier to self-host.



That's really interesting! I've been using and developing Posthog-LLM for tracking LLM text events, and I'm excited to try this tool. A lightweight Posthog sounds great. The older Posthog versions were better for self-hosting because they were lighter, but the latest version is a bit too heavy.


I better start working on self-hosting guide/script :D


how does this compare to https://posthog.com ?


Mainly the difference is that openpanel is a bit more lightweight and easier to grasp.

Posthog is a great product and really like it. Just want something more hands on but have the power to visualize data.

So I don't see posthog as a competitor at all. My focus is more about hitting the perfect spot between plausible and mixpanel.


Waiting for the self-hosted version... would be great to be able to deploy this with Kubernetes too


Noted


Do you have a way to automatically prune old data? I ran into the problem with posthog where the old data just overflowed my db and made it inoperable and they had no way to prune it.


Hmm seems odd? Currently I have none but will probably add a TTL to clickhouse on 5 years.

And if you really need to prune data you could just use good ol SQL?


For my platform, I created some cron-jobs that run an SQL that deletes data older than X months.


What does "privacy first" mean in this case?

My understanding is the plausible, unlike GA, doesn't use cookies.

Does that mean web analytics are IP-only?

[edit: Or does it mean no third party sees your analytics?]


@openplatypus have some good point but I want to clarify what I mean by "privacy first"

User information - By default we do not store or log any user related information. All information that is stored in our DB is general information. We see this as a important privacy for your visitors.

Data - Your data will never be sold or given to a third party. You'll be able to export, import and delete all data related to your projects.

Cookie - We do not use any cookies or localStorage to keep track of your users

--

Their are some big downsides with privacy first since you wont be able to track users over several days (get retention and what not). So I have decided to give my customers the option to do what they want.

If this is an important metric to them they can decide to pass a profileId to the SDK. Then we'll use this ID and will be able to track that users over several days. This is an opt-in feature and thats also why I say "Privacy first".


Privacy means very different things to different people.

On basic level it is just that your data is not used/sold beyond basic, statistical analysis of visitors. That's it. Cookie can be "private" in this context, if they are SameSite and httpOnly with short life.

In terms of law, Privacy is very different thing. In case of GDPR in the EU it is set of rules and laws that you have to comply with.

Just because you don't use cookies or host in EU, doesn't mean you are automatically GDPR compliant.

We built Wide Angle Analytics, and we invested in strict compliance. We hired experienced DPO (one of requeirements), host in EU on EU cloud, not just EU located servers. We document every data processing activity and do not engage in any international data transfer ( in context of GDPR). Plus much more.

Cookieless does not mean privacy. There is lot of snake oil out there.


The website https://openpanel.dev appears to be down. Maybe too many of us were hitting it.


Does the product support Webflow as well? We are looking for a Mixpanel alternative that can connect both webflow and our own website product.


Nice UI. Is some of this forked from Plausible?


Not a single line of code is from plausible.

But definitely inspired by thier overview and how the avoid cookies


you should reach out to the founders of cal.com and documen.so on Twitter. They’re big on promoting this kind of stuff :)


Will print screen this and tag them. Let’s see what happens hehe


hello


hehe no need for the print screen then :)


Looks really good!

How do you create funnels without cookies? In other words, how do you track sessions?


Thanks! Similar to how Plausible is doing. Each user gets a unique identifier which is based on `hash(domain+useragent+ip+salt)` (the salt is generated each day).


That does create clusters for users that work at the same company, with the same company-issued devices. Or iPhones in a New York City block.


A bit more factors tbh. User agents have browser, version etc.

iPhone in New York block still have different IP, versions etc

But I hear you, it’s better than cookies and that’s the entire point.

You can also provide a user id, more info here https://news.ycombinator.com/item?id=40434115


This is the same problem that I had with parsing logs. There's no way to know that mom+dad+kid all using the same model device were 3 different users.


If the salt changes daily, how is. It possible to know how many users returned after > 24 hrs?

Edit: @lindesvard- Got it, thanks for clarifying!


You'll never know any returning users after salt changes. This is the hole point with privacy first.

But you have options tho. Compared to other tools that is privacy first, you can actually pass your own user id. You can get this ID from where ever you want (db, cookie, localStorage. Its up to you whom implement it)

But I want to have a middle ground where privacy is important but you have the options to decide what path you take.


So maybe an obvious question but just to be clear, if you pass your own user ID you can track that particular user's flow across multiple sessions/days/etc?


Yes! So its a matter of priorities. Is privacy or retention most important? Than you can decide how to track users.


Looks great as a self-host alternative if/when you make self-hosting feasible.


When*

Before beta is over it’ll be easily self-hosted.

But since it free now there is no need for self-hosting.

Will make it easy to export/import your events between instances


> since it free now there is no need for self-hosting.

It's awesome that you're offering this for free for now, but I don't think that means there's no need to self-host. There are many reasons people might not want to hand over data to a third party.


Jup, my main use case for these things is bypassing all the approvals necessary to send stuff to a third party.


True, I guess I need to prioritize this a bit


Awesome!


What's the advantage of using this over PostHog?


Not OP but here are my personal thoughts. I love PostHog (and using in almost all of our web assets/products) but it is overkill for most usage, especially small and personal projects/websites/apps.

I'd gladly settle for something simpler like Plausible or this one, perhaps, start with their hosted SaaS version and if need to, we can host it ourselves.


Posthog is great and I love it.

But as others have mentioned. It’s way too complex and advanced for most use cases and that’s where we differ.

Heard that posthog also is very resource heavy when self-hosting it.


This is still not very affordable for my use case. My small network of sites does around 400.000 pageviews per day. $120 per month is pretty steep for something I look at only a couple of times per month.

Ever since GA4 and the whole cookie banner thing I'm looking for something that is GDPR compliant, has basic functionality and is cheap.

But every time I look it comes down to self hosting.

Plausible relies on Clickhouse and I don't know Clickhouse. Umami relies on Mysql or Postgres with a pretty inefficient data scheme that cripples performance with the scale of my data.

Can't these services be made a lot cheaper (and faster) by doing data sampling like Google Analytics did?


> by doing data sampling like Google Analytics did?

You can always conditionally include the tracker. So, you can include it with a 10% chance, then you will still get stats, but sampled.

Doing this, you might miss some important events/sessions though.


Google is free since they sell your data.

Clickhouse is expensive, compute on scale is expensive, development is expensive etc. Sounds like your best bet is to do self-hosting


How does this compare to metabase?


Will pay attention to this for sure.


woop woop!


[deleted]




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: