by bananaoomarang on 8/18/20, 1:35 PM with 227 comments
by mcao on 8/18/20, 3:32 PM
Author of Umami here. I totally did not expect this response so it looks like you all hugged my little server to death. The demo should be back up now.
A little background. This is a side project I started 30 days ago because I was tired of how slow and complicated Google Analytics was. I just wanted something really simple and fast that I could browse quickly without diving through layers of menus. So I created Umami to track my own websites and then open sourced it. The stack is React, Redux, and Next.js with a Postgresql backend.
Would be happy to answer any questions you have.
by malisper on 8/18/20, 5:34 PM
> Umami does not collect any personally identifiable information so it is GDPR and CCPA compliant. No cookie notices are needed because Umami does not use cookies.
From auditing the source code, this doesn't seem to be the case. First, it claims it doesn't use cookies, but it clearly uses localStorage to store a "sessionKey"[0].
The other claim, that Umami is GDPR and CCPA compliant because it does not collect any personally identifiable information is only half true. While the data collected isn't PII (because you can't use it on it's own to identify a user), it's still "personal data". This is because the "sessionKey" stored alongside all events is actually a pseudonymous user identifier. It's really just a hash of the user's IP along with a few other properties[1]. Because the data Umami collects, when combined with some other data, can be attributed back to the user, the data is still considered "personal data". That means you're still subject to most of GDPR such as GDPR deletion requests[2].
[0] https://github.com/mikecao/umami/blob/f4ca353b5c68750bf391e5...
[1] https://github.com/mikecao/umami/blob/master/lib/session.js#...
by eric4smith on 8/19/20, 5:58 AM
For simple sites like blogs, simple low volume ecommerce, etc.
But for more "serious" eCommerce, SAAS based applications and sites that are concerned with marketing on email, social and web then then optimizing what you show then and finally generating leads for salespeople to call or actual sales...
Cookies or local storage, or some way of tracking the customer across all the channels and their actions are essential.
If one can avoid using Google Analytics, then that's a good thing also.
But let's get real -- the idea of a cookie-less future is not gonna happen because people actually do business in the web.
by andrewzah on 8/18/20, 3:34 PM
by lxe on 8/18/20, 8:38 PM
by arielm on 8/18/20, 5:03 PM
I wouldn’t call this a replacement to Google Analytics.
The reason to have something like Google Analytics is to track traffic at a more granular level, and with very specific intent.
Some of the things I _rely_ on include:
- custom parameters - segments - goals - A/B testing - specific views
And that’s just the short list.
Now, I use Analytics heavily because we spend a lot of effort on growth, both organic (content, seo) and paid (ads), so knowing what’s going on at that level is essential.
If you don’t, there’s not much reason to use something like GA.
by vs4vijay on 8/18/20, 2:30 PM
Also, I did research on alternatives to GA few days back, might be helpful of someone:
https://github.com/Open-Web-Analytics/Open-Web-Analytics
https://github.com/matomo-org/matomo
https://github.com/usefathom/fathom
by thinkmassive on 8/18/20, 2:01 PM
by colechristensen on 8/18/20, 2:56 PM
by ln_00 on 8/18/20, 2:46 PM
just add the command as a cron job, and you get an auto generated static dashboard. very neat.
by chrisblackwell on 8/18/20, 2:22 PM
by dzink on 8/18/20, 10:29 PM
by eden_h on 8/19/20, 9:31 AM
Tackling the privacy focus for GA is great, but they're a good deal of products out there that already fill that niche, not to mention the requirements of the privacy crowd usually being a venture into itself.
If you wanted to make it relatively competitive for marketing, the simplest addition would be adding labelling via regex for referrers.
i.e. - Some users want to be able to group Baidu, Google, DuckDuckGo, into a single bucket for comparison. Some users want to break them down into common market segments by country. "https://www.baidu.com/link?url=FyYbCZqj65Vc7A4XeSNrOcQCS2qFX...
is from your live demo referrers, and makes it difficult to actually assess the amount of traffic from Baidu. Using a regex label means that users can break down traffic from Paid/Organic marketing fairly quickly, and start to build up dashboards they can use.
If you ever extended it to allow multiple labels for each hit, could re-run the regex over past data, and could build reports off it, you'd easily have a benefit over GA that would start to wean the marketing crowd off it.
by hitekker on 8/18/20, 2:37 PM
by busymichael on 8/18/20, 10:56 PM
I have been working on something similar at https://argyle.cc -- we combine cloud analytics with a self-hosted analytics collector js. That gives you the best of both worlds: privacy focused, user respecting analytics, but full featured reporting in the cloud and ad-blocker resistance. It also allows event tracking to be done over js/web or in-line/server side.
by marcus_holmes on 8/18/20, 7:58 PM
I know ~10 of them are React, and there's some in there that make sense. But I haven't got the time to audit them all, and re-audit it every time any of those dependencies update .
And escape-string-regexp? Really? it's literally 2 lines of code [0]. Why have I got to give the maintainer of that project commit access to this program that will be seeing potentially sensitive data?
Why, if the developer couldn't come up with those 2 lines themselves, isn't this a Stack Overflow copy/paste?
[0]https://github.com/sindresorhus/escape-string-regexp/blob/ma...
by m90 on 8/18/20, 4:07 PM
by shattl on 8/18/20, 2:33 PM
by gowld on 8/18/20, 11:12 PM
https://en.wikipedia.org/wiki/Local_differential_privacy and https://en.wikipedia.org/wiki/Randomized_response
by nickthemagicman on 8/18/20, 3:26 PM
As a noob at UI it was bizarre and unintuitive for me.
Just finding the region locations of the traffic was odd and didn't make immediate sense.
by llacb47 on 8/18/20, 2:36 PM
by markl42 on 8/19/20, 1:43 AM
Using it for some personal stuff, and does absolutely everything I need it to, and then some.
I love the ethos of the project, and whilst it's open source, there's a hosted option that looks super reasonable too.
by epoch_100 on 8/18/20, 3:07 PM
by dylan604 on 8/18/20, 4:46 PM
by te_chris on 8/19/20, 8:09 AM
by hugey010 on 8/18/20, 2:42 PM
by superlupo on 8/19/20, 7:59 AM
by buraksarica on 8/18/20, 2:56 PM
by dandigangi on 8/18/20, 2:38 PM
by mikece on 8/18/20, 2:04 PM
by zanecraw on 8/19/20, 6:49 PM
by anderspitman on 8/18/20, 3:18 PM
by tobilg on 8/19/20, 3:37 AM
by songzme on 8/18/20, 9:31 PM
What was your reasoning? Personally, I write tests for all my projects, it forces me to really think hard about how to break down the different components and functionalities and it helps others feel more confident to contribute.
by dirtnugget on 8/18/20, 3:47 PM
by anvarik on 8/18/20, 8:54 PM
by 1f60c on 8/18/20, 2:36 PM
by dsalzman on 8/18/20, 2:12 PM
by armandososa on 8/19/20, 2:13 AM
FlightPHP looks nice, too, what didn't you use that for the backend?
by quaffapint on 8/18/20, 6:51 PM
by sahnasidol on 8/18/20, 2:30 PM
by gitgud on 8/18/20, 2:49 PM
Hacker News hug of death?
by takein on 8/18/20, 2:49 PM
by ethor on 8/18/20, 2:05 PM
by gramakri on 8/18/20, 2:02 PM
by kmfrk on 8/18/20, 2:30 PM
by bambam24 on 8/18/20, 2:25 PM
by rockwotj on 8/18/20, 2:00 PM