[HN Gopher] Umami: Self-hosted open-source alternative to Google...
       ___________________________________________________________________
        
       Umami: Self-hosted open-source alternative to Google Analytics
        
       Author : bananaoomarang
       Score  : 473 points
       Date   : 2020-08-18 13:35 UTC (9 hours ago)
        
 (HTM) web link (umami.is)
 (TXT) w3m dump (umami.is)
        
       | mikece wrote:
       | Are there any "Google Analytics" alternatives that aren't based
       | on Python, Node, Go, etc but something with a PHP back-end that
       | can be deployed to any commodity LAMP hosting provider?
        
         | ethor wrote:
         | Matomo uses php
        
           | mikece wrote:
           | And it's "Wordpress easy" to setup and doesn't require
           | special access or server config?
        
             | tacone wrote:
             | Yes. On the first run it will take you to a wizard to set
             | it up.
        
             | martin_a wrote:
             | Totally! Just set an instance up the other day. Done in
             | five minutes, you'll only need database credentials and a
             | somewhat "normal" PHP setup.
        
             | johnchristopher wrote:
             | There's even a plugin for wordpress that embeds matomo
             | itself if memory serves right.
        
             | johnchristopher wrote:
             | It's as easy as setting up GA in WordPress. Just inject the
             | JavaScript snippet built by your Matomo instance when
             | creating a new tracker.
        
               | moooo99 wrote:
               | I think the question was if the software itself is
               | actually simple to set up with a commodity web host. As
               | easy as upload via ftp and configure in webbrowser easy.
        
               | johnchristopher wrote:
               | Oops, my bad. You are totally right.
        
         | wizzwizz4 wrote:
         | You could check the ReverseEagle list:
         | https://developers.reverseeagle.org/replace/google-analytics...
         | 
         | Also, anyone with a Tedomum account? It'd be nice if you could
         | open an issue about adding umami.is.
         | https://forge.tedomum.net/ReverseEagle/developers/-/issues
        
           | rapnie wrote:
           | Thanks! PS. there is a typo here (should be 'statisfy'):
           | https://developers.reverseeagle.org/replace/google-
           | analytics...
        
         | acidburnNSA wrote:
         | Would awstats meet this criteria? Not PHP but even simpler. I
         | have data from it going back to 2006 (maybe 2002 if I dig up
         | backups), which is a lot of fun.
         | 
         | https://www.awstats.org/
        
           | ibdf wrote:
           | I remember once at a previous job one of the devs forgot to
           | setup google analytics which was the go to tool at the time.
           | Client calls in wanting to get some stats for their site
           | after 3 months, and we had nothing... thankfully awstats
           | comes with cpanel without any additional setup, and we had
           | something to show. Not great, but better than nothing.
        
         | XCSme wrote:
         | I built one: https://usertrack.net
         | 
         | It has a plain PHP + MySQL backend, so it's really easy to
         | install (on a LAMP server, as a WordPress plugin or one-click
         | install on a DigitalOcean droplet).
         | 
         | When I started building it 8 years ago, the idea was exactly
         | this, it should run on any basic shared hosting that can run
         | PHP, so any site can just have its own analytics dashboard,
         | without relying on 3rd parties.
        
           | XCSme wrote:
           | For userTrack, the LAMP installation process has 3 main
           | steps:
           | 
           | 1. Upload the script files.
           | 
           | 2. Create a MySQL database for the script to use.
           | 
           | 3. Run the auto-installer (to set up DB connection and create
           | the tables in DB).
           | 
           | https://docs.usertrack.net/installation/uploading-the-script
        
         | arp242 wrote:
         | The advantage of Go is that you can compile it to a single
         | (static) binary, and then it doesn't really matter what the
         | rest of the backend is running. Unlike Python, Node, PHP, etc.
         | you don't need to set up an environment.
        
       | busymichael wrote:
       | Congrats on launching -- really impressive. One important issue
       | that these self hosted analytics solve is ad blocking. Ad
       | blocking by users really undermines the ability of a site or app
       | to figure out what is working and not working. When you host your
       | own analytics, you can get usability information for all of your
       | users, not just those that don't block. That allows you to make a
       | better product.
       | 
       | 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.
        
       | ethor wrote:
       | Seemingly no api? :(
        
       | anderspitman wrote:
       | I've been happily paying for GoatCounter for several months. I
       | don't imagine I'll ever need to self host but it's nice knowing I
       | can if necessary.
        
       | lxe wrote:
       | I've seen a bunch of these simple self-hosted log dashboards here
       | on HN, but I don't think they directly compare with google
       | analytics, which is just a much more powerful and much much more
       | complicated product. Not to say this isn't a great product, but
       | it really isn't an alternative to GA.
        
         | slg wrote:
         | I wonder how many users actually use those advance features. As
         | someone who has only ever used GA to help provide insight into
         | developmental priorities (i.e. not for marketing), this doesn't
         | help too much. For example, this tells you the browser but it
         | doesn't tell you the browser version. It tells you the device
         | being used, but it doesn't tell you the resolution of that
         | device. It tells you the country of your visitors, but it
         | doesn't tell you the user's language. It tells you pages users
         | visit, but it doesn't tell you the order in which they visit
         | them.
         | 
         | This isn't a criticism of Umami. It looks like a nice clean app
         | that accomplishes what it is trying to do. But if this is all
         | you needed from Google Analytics than that tool was overkill in
         | the first place.
        
           | mcao wrote:
           | Agreed, saying it's a one to one alternative to Google
           | Analytics is probably a misnomer. I think a lot of people,
           | myself included, used GA because there were no simpler
           | alternatives and better overkill than nothing.
        
         | ggregoire wrote:
         | Do you know any good resources to learn the intricacies of
         | Google Analytics and its related marketing concepts?
        
       | songzme wrote:
       | noticed you didn't write any tests:
       | https://github.com/mikecao/umami
       | 
       | 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.
        
       | dzink wrote:
       | It needs more granularity of OS versions and browser versions.
       | Knowing which iOS version your users have is important to decide
       | on what base level version you need for an iOS app, for example.
        
       | ln_00 wrote:
       | to be honest, if you are using nginx, just use / run
       | https://goaccess.io/ It collects the same information as umami
       | and is even more lightweight, since it just runs whenever you
       | tell it to.
       | 
       | just add the command as a cron job, and you get an auto generated
       | static dashboard. very neat.
        
         | leephillips wrote:
         | Apache too (and first).
        
       | sahnasidol wrote:
       | Is there any way to create and track custom events like clicks?
        
         | mcao wrote:
         | Yes, event tracking is already in the current build. I just
         | haven't finished the UI components or documentation yet. But
         | basically all you have to do is add a CSS class to an element
         | and it will automatically start tracking. Like this:
         | <div class="button umami--onclick--signup-button">Signup</div>
        
       | vs4vijay wrote:
       | Looks neat! will explore.
       | 
       | 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://matomo.org/
       | 
       | https://github.com/matomo-org/matomo
       | 
       | https://github.com/usefathom/fathom
       | 
       | https://www.goatcounter.com/
       | 
       | https://plausible.io/
       | 
       | https://github.com/PostHog/posthog
       | 
       | https://www.usertrack.net/
        
         | asddubs wrote:
         | posthog is really unfortunately named
        
           | Insanity wrote:
           | How so?
        
           | bartvk wrote:
           | I don't get it either. Not a native speaker, though. So could
           | someone explain it?
        
             | csmiller wrote:
             | I believe they are referring to posting a picture of one's
             | hog
        
           | timgl wrote:
           | PostHog founder here. Only if you split the name ;-)
        
         | justinclift wrote:
         | > https://github.com/usefathom/fathom
         | 
         | Be careful of this one. It started out as OSS, but switched to
         | proprietary once they'd achieved traction.
        
         | rapnie wrote:
         | All open source:
         | 
         | https://count.ly/
         | 
         | https://github.com/vesparny/fair-analytics
         | 
         | https://goaccess.io/
         | 
         | https://www.kokoanalytics.com/
         | 
         | https://github.com/sheshbabu/freshlytics
         | 
         | https://github.com/milesmcc/shynet
        
         | diafygi wrote:
         | Of these, do any have a funnel tracking feature that shows what
         | visitors went through a specific series of pages/events? Seeing
         | how users moved about the site and seeing how many converted is
         | a deal breaker for me.
        
           | lilfermat wrote:
           | Not out of the box but snowplow does if you model the data on
           | your own.
        
           | KaoruAoiShiho wrote:
           | Pretty sure posthog does.
        
             | timgl wrote:
             | (PostHog founder) Yes we do! PostHog gives you full funnel
             | capabilities + ability to see exactly what users dropped
             | out where
        
             | james_impliu wrote:
             | Confirmed! (I'm one of the founders)
        
           | volument wrote:
           | https://volument.com might be a good pick since it focuses
           | strictly on conversion optimization. It attempts to measure
           | the more general conversion flow, known as the AIDA funnel
           | (awareness, interest, desire, and action).
        
         | tedivm wrote:
         | Fathom started as open source, but the founders stopped
         | supporting the open source project. It's basically abandoned at
         | this point, with no new releases in almost two years and only
         | updates to the README.
        
         | volument wrote:
         | Here's one we are working on: https://volument.com -- it
         | focuses on conversion optimization.
        
         | kukabynd wrote:
         | There^s also https://ackee.electerious.com/, quite simple but a
         | good option.
        
         | XCSme wrote:
         | Thanks for mentioning https://www.userTrack.net, I'm the author
         | and still working full-time on improving it. Let me know if you
         | have any questions/remarks about userTrack.
        
           | Semaphor wrote:
           | Wow, that's actually the first one (besides matomo which is
           | rather enormous) that looks like a decent alternative to me
           | with more than just bare-bones features. I'll keep it in
           | mind. And I really like the clear and to-the-point website.
           | 
           | No, XCSme did not pay me for this comment ;)
        
             | XCSme wrote:
             | Thanks for the kind words!
             | 
             | To be honest, I did work a lot on it, 6-7 years as a side-
             | project and one year full-time. I think feature-wise
             | userTrack is pretty comparable to Matomo (including some of
             | their premium features that cost 400eur+/year). I also
             | recently recreated the entire front-end from spaghetti
             | jQuery to TypeScript+React+MaterialUI and implemented an
             | auto-updater system. This means that I can now implement
             | new features, fix bugs and distribute the updates to users
             | very fast.
             | 
             | I am really glad that you like the landing page! I probably
             | changed it like 200 times in the last 2 months (last change
             | was 2 minutes ago). I still want to improve it (eg. some
             | hero video actually showcasing the product, so you don't
             | have to spend time understanding the demo).
             | 
             | PS: I hope that the BTC transfer was successful and thanks
             | again for the comment! (jk)
        
               | abraae wrote:
               | > am really glad that you like the landing page! I
               | probably changed it like 200 times in the last 2 months
               | (last change was 2 minutes ago).
               | 
               | Hilarious, I have changed our new home page literally
               | hundreds of times over the last few days and having
               | looked at yours, I see inspiration for yet another
               | change.
        
         | poidos wrote:
         | +1 for matomo. Very easy to set up a self-hosted instance, good
         | documentation, and works well. NB: My site is pretty low-
         | traffic.
        
         | tiffanyh wrote:
         | There are a bunch of Github "awesome software" lists.
         | 
         | One thing I haven't seen is someone categorize open source web
         | traffic analytics into Client Side Analytics (via javascript)
         | and Web Server Log analytics.
         | 
         | Since each approach drastically changes the data collected and
         | reported.
        
           | gen220 wrote:
           | Are there any all-in-one-ish solutions that attempt to do
           | both?
           | 
           | i.e. collects both (or one of either) server logs and client
           | side analytics, normalize them, etc.
        
             | mxuribe wrote:
             | Matomo does provide an alternative to leverage web server
             | log files (beyond the usual client side javascript)...using
             | a python script: https://matomo.org/faq/log-analytics-tool/
             | 
             | When i first migrated (my personal sites) away from GA, i
             | was concerned about performance, so was considering using
             | server logs, and stumbled upon this feature of matomo. The
             | javascript approach ended up not being the performance
             | issue that i thought it would be...so i never ended up
             | using the python script...So your mileage may vary, but to
             | your question, this does exist.
        
         | hanspagel wrote:
         | don't forget
         | 
         | https://simpleanalytics.com/
        
           | robinhood wrote:
           | It's not open source.
        
             | gentleman11 wrote:
             | True, but it at least respects the privacy of your visitors
             | by doing very minimal tracking. Basically, all you get is
             | country, some device stats, and a time stamp. Last time I
             | used it, it didn't even track return visits and used no
             | cookies iirc. It felt nice
        
         | gentleman11 wrote:
         | The problem with matomo (not their fault) is that Microsoft
         | flags your site as distributing malware and you disappear from
         | search engines. You have to fill out a bunch of forms to fix
         | it. It's listed in the matomo faq and is basically either from
         | a bot falsely reporting you, or some other glitch. It's why my
         | blog is still invisible to bing users: if you visit in edge,
         | you get huge menacing red warnings.
        
           | basilgohar wrote:
           | This is unfortunate. I've been using them for years and
           | wasn't aware of this. I wonder how much it's affecting the
           | sites I use it on...
        
         | nickreese wrote:
         | Here is another to add to that list. They just hit 2.0 this
         | week.
         | 
         | https://github.com/electerious/Ackee
        
         | Deukhoofd wrote:
         | Any privacy oriented analytics tools not purely focused on
         | website analytics?
        
           | ponteiro wrote:
           | https://getinsights.io has event tracking for webapps but is
           | not open source
        
         | ahnick wrote:
         | +1 for Plausible.
         | 
         | I've been using it for our name generator product Mashword
         | (https://mashword.com) and it was really straightforward to
         | implement. It's reasonably priced, has a clean interface and
         | graphs, is privacy protecting and supports using your own
         | domain for pulling in the js include.
        
         | kirubakaran wrote:
         | https://github.com/PostHog/posthog looks great for product
         | analytics. If you've used it, can you please share your
         | experience?
        
           | Zaheer wrote:
           | I currently use the self-hosted version on Heroku and
           | impressed with its functionality. It's quite similar to Heap
           | Analytics. My favorite feature is auto-tracking. That said,
           | there are some scaling limitations currently if you have a
           | high traffic site. We have a couple hundred thousand users
           | monthly so we are likely on the larger side of PostHog
           | deployments. The team is cranking out features and
           | improvements incredibly fast and I'd expect these to be
           | resolved soon. Feel free to DM - happy to answer any more
           | questions.
        
             | kirubakaran wrote:
             | Thanks!
        
         | woutr_be wrote:
         | I've been using GoatCounter for a couple of months now, it's
         | great! Super simple interface with all the data you need.
        
           | ASlave2Gravity wrote:
           | Aye, same here. It's _really_ good!
        
       | kmfrk wrote:
       | Does this use cookies and similar to warrant a GDPR prompt?
        
         | mcao wrote:
         | No, it does not use cookies so no cookie prompt is needed.
        
           | eclipsetheworld wrote:
           | I just checked your tracking code. It looks like you're using
           | the locale storage to set a session id to track uniqueness.
           | According to this [0] Stackexchange answer you will still
           | have to display a cookie banner.
           | 
           | [0] https://softwareengineering.stackexchange.com/questions/2
           | 905...
        
             | mcao wrote:
             | The local storage is mainly for performance. It's to
             | prevent a round-trip to the database to figure out the
             | session again. The session id will be the same regardless
             | and it can function without local storage. But I do see
             | your point. I may consider removing it just to be safe.
        
       | marcus_holmes wrote:
       | I'd love to use this. But 34 dependencies?
       | 
       | 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...
        
         | halfmatthalfcat wrote:
         | Would you also criticize someone for using Apache Commons
         | StringUtils? The fetishization of critiquing npm package
         | choices is hilarious.
        
       | dsalzman wrote:
       | +1 to https://goatcounter.com/ o use it for my personal blog
       | https://dannysalzman.com . This is a good reminder to donate.
        
       | takein wrote:
       | Good job. Getting 502 error!
        
       | gitgud wrote:
       | Demo is throwing back "502 Bad Gateway"
       | 
       | Hacker News hug of death?
        
       | shattl wrote:
       | Wow, Piwik is now Matomo, how fast time flies!
        
       | malisper wrote:
       | One of the claims of Umami is that it's GDPR compliant:
       | 
       | > 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#...
       | 
       | [2] https://gdpr-info.eu/art-17-gdpr/
        
         | mcao wrote:
         | I am not a lawyer so I cannot say for sure what constitutes PII
         | and what breaches GDPR. I am using the same techniques as
         | Fathom Analytics, Plausible.io and other products. Everything
         | is hashed into a unique session id and none of the actual data
         | like user agent or IP address is actually stored. It is the
         | same data that is found in server log files. In the strictest
         | interpretation of GDPR, I don't think any analytics product can
         | exist.
         | 
         | As for the localStorage, it's just for performance so I don't
         | have to recompute the session hash. The product will work the
         | same without it. But seeing as it is a cause contention I am
         | probably going to remove it.
        
           | secondcoming wrote:
           | It doesn't matter if the UA or IP is stored, even using them
           | to fingerprint a user requires GDPR consent.
        
             | matthewheath wrote:
             | Consent is only one potential basis for processing under
             | GDPR. There are others such as "legitimate interest" which
             | the controller and/or processor may rely on.
        
               | sleepyhead wrote:
               | That's true but not relevant for a random user visiting a
               | website.
        
               | latk wrote:
               | Since this is about cookies and IP addresses, GDPR is not
               | the most relevant EU law. Instead, we have to look at the
               | old ePrivacy Directive.
               | 
               | For cookies or any other access to information stored on
               | the user's device, that access must either be strictly
               | necessary for performing the service explicitly requested
               | by the user, or consent is required (ePD Art 5.3). This
               | is where those annoying cookie banners come from.
               | LocalStorage isn't any different and would require the
               | same consent as cookies.
               | 
               | For traffic data such as IP addresses, processing is
               | allowed if it's technically necessary for the
               | "transmission", if the data has been anonymized, if it's
               | required for billing purposes, or if the user has
               | consented (ePD Art 6). There is an argument that security
               | logs might be necessary, other uses like analytics are
               | more dubious. The good news is that Umami seems to
               | properly anonymize the IP address, so this part seems
               | fine.
               | 
               | In cases where ePD mandates using consent, we cannot fall
               | back to another GDPR legal basis such as legitimate
               | interest. Of course this discrepancy between ePD and GDPR
               | is a huge problem, and the promised ePD update has yet to
               | materialize.
        
           | y42 wrote:
           | "In the strictest interpretation of GDPR, I don't think any
           | analytics product can exist." That's the point. Unless you
           | aggregate the data.
           | 
           | Besides, it's not only GDPR you should consider, but also the
           | latest cookie verdict by the CJEU. You need a consent if you
           | drop cookies, session storage or any other tracking
           | technology, no matter if you process personal data or not.
        
           | [deleted]
        
           | malisper wrote:
           | Both Fathom and plausible generate a unique salt every day.
           | By getting rid of the old salts, they've anonymized any data
           | older than a day. From [0]:
           | 
           | > We do not attempt to generate a device-persistent
           | identifier because they are considered personal data under
           | GDPR.
           | 
           | > Instead, we generate a daily changing identifier using the
           | visitor's IP address and User Agent. To anonymize these
           | datapoints, we run them through a hash function with a
           | rotating salt.
           | 
           | [0] https://plausible.io/data-policy
        
             | mcao wrote:
             | I will probably implement the daily salt and remove the
             | localStorage code as well just to be safe.
             | 
             | But again, I'm not a lawyer here, where do you draw the
             | line? Why not hourly salts? 5 minute salts? What is
             | considered a reasonable effort? At some point you're
             | storing data that can identify a user for the purpose of
             | analytics. Still, I'm going try to lean to the safer side
             | as best I can.
        
               | lmkg wrote:
               | There are two paths to compliance with GDPR.
               | 
               | Option 1: Accept that you're collecting Personal Data,
               | and satisfy the obligations GDPR places on that. This
               | means disclosing the use of analytics in your privacy
               | policy (what data's being collected & why), listing
               | retention periods, and figuring out how to satisfy
               | requests like Access or Deletion (which may include "we
               | can't identify you in the data we previously collected).
               | 
               | Option 2 is to "comply" with GDPR by finding a loophole
               | that it technically doesn't count.
               | 
               | The Option 2 approach is more common when dealing with
               | American data privacy laws. It doesn't work out so well
               | with GDPR. It's _very_ difficult to not be processing
               | personal data at some point. Even if you fully anonymize
               | your data before doing any non-trivial processing, the
               | _anonymization itself_ is still covered by GDPR. Which
               | means you need to include it your privacy policy and
               | provide opt-out.
               | 
               | It's also high-risk. If a court decides that you didn't
               | quite thread the needle through the loophole in their
               | country and GDPR therefore applies in full, then you
               | haven't done any of the compliance groundwork.
               | 
               | For GDPR compliance, I would be much more inclined to
               | trust a tool that describes how to opt users out of
               | tracking than one that claims they're immune from
               | obligations to opt-out.
               | 
               | As another commenter mentions, the ePrivacy Directive is
               | a whole different kettle of fish. Strong consent needed
               | to read _or_ write any data not strictly necessary to
               | provide the services requested by the user. That law
               | _should_ get updated with more sanity soon... it 's been
               | that way for a few years now.
        
           | madeofpalk wrote:
           | > I am not a lawyer so I cannot say for sure what constitutes
           | PII and what breaches GDPR
           | 
           | If you don't feel fit to judge whether something breaches
           | GDPR, then maybe you shouldn't say "so it is GDPR and CCPA
           | compliant".
        
       | epoch_100 wrote:
       | This looks great! For what it's worth, I also maintain an open
       | source (and self hosted) website analytics tool called Shynet [0]
       | (someone else mentioned it in this thread, but thought I'd share
       | here as well). Really great to see more options in this area!
       | 
       | [0] https://github.com/milesmcc/shynet
        
       | 1f60c wrote:
       | From the screenshots, the design looks very slick and I can't
       | wait to give it a try!
        
       | llacb47 wrote:
       | The whole script is 502... https://stats.umami.is/umami.js
        
       | nickthemagicman wrote:
       | Am I wrong for thinking that Google Analytics has bad UI?
       | 
       | 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.
        
         | edwinjm wrote:
         | It's pleasure to work with compared to one or two years ago
        
       | quaffapint wrote:
       | Any suggestions for collecting server side logs via nginx pods in
       | k8s?
        
       | dirtnugget wrote:
       | Can anyone tell how this holds up against Matomo?
        
       | hitekker wrote:
       | For something this simple, I was hoping to see an option for
       | SQlite, not just MySQL and PostgresSQL.
        
         | mcao wrote:
         | The app is using prisma.io which does support SQLite. I just
         | haven't had the time to implement it yet.
        
           | [deleted]
        
       | dandigangi wrote:
       | I always like seeing competitors to GA but the website could
       | really use some more information on why you should use it and the
       | features it gives you. It's hard to beat top competitors in a
       | saturated space.
        
       | anvarik wrote:
       | I liked the image on the home page, how can I create such an
       | image to show case my product? only way is PS?
        
       | buraksarica wrote:
       | I wish to see a line about backend platform on installation
       | documentation. Yes, it's simple, but IMO no one will find "Umami
       | requires bla bla platform on bla bla operating system." sentence
       | useless.
        
         | GoblinSlayer wrote:
         | Ironically how big is web on advertisements, but when the time
         | actually comes to tell what the product is and does, they
         | forget words.
        
         | sradman wrote:
         | From a quickscan of the GitHub repo [1], this is a JavaScript
         | client, like Google Analytics, that sends data to a self-hosted
         | Node.js backend that stores the data in MySQL or PostgreSQL
         | using the Prisma database toolkit:
         | 
         | [1] https://github.com/mikecao/umami
        
       | m90 wrote:
       | Is there a way for me as a user to opt out of this tool other
       | than relying on third party tools like uBlock? I'm starting to
       | get annoyed by so many "privacy focused" tools with literally no
       | consent options at all.
        
         | mcao wrote:
         | I haven't implemented it yet, but I plan to make it read the
         | user's do not track setting and automatically opt out.
        
           | m90 wrote:
           | While this is much appreciated, keep in mind this does not
           | work for Safari users.
        
       | rockwotj wrote:
       | Demo website 502's for me :/
        
         | amenod wrote:
         | Same here. :-/
        
         | gilli wrote:
         | Same, maybe we already hugged it to death?
        
         | mcao wrote:
         | Should be back up now, give it another try.
        
       | chrisblackwell wrote:
       | I'm very excited to see this space heating up. It seems for years
       | we defaulted to using Google Analytics and no one wanted in the
       | market. Now there are plenty alternatives, with many of them open
       | source.
        
       | colechristensen wrote:
       | Is there a similar product that does this server side (without
       | injected javascript telemetry) with http logs?
        
         | corytheboyd wrote:
         | Saw this link in another comment, might be what you're looking
         | for https://goaccess.io/
        
         | Trasmatta wrote:
         | For Rails, there's Ahoy: https://github.com/ankane/ahoy
        
         | GoblinSlayer wrote:
         | https://goaccess.io/
         | 
         | https://www.awstats.org/
        
         | eli wrote:
         | You end up with a lot of noise from bots and crawlers (using
         | bogus user agents) if you're just looking at server logs.
        
           | justinclift wrote:
           | Any reasonable server side processing thing will exclude the
           | obvious bots, which almost always have some kind of "Bot"
           | wording in their user agent header.
        
             | eli wrote:
             | There are a LOT of bots and crawlers with bogus browser
             | user agents.
             | 
             | Some of the bad ones you can select see indirectly in logs
             | because they pick UAs that almost no one uses any more. Go
             | search your logs for IE8 or Firefox <= 70.0. Most just pick
             | a random modern User Agent though and that's awfully hard
             | to see in server logs.
        
               | colechristensen wrote:
               | Yeah, but so what? There are plenty of blacklists
               | maintained for all sorts of things, and no metric is
               | perfect. Some really rudimentary filtering or AI methods
               | could get you pretty good data.
        
         | anderspitman wrote:
         | Keep in mind if you're using a CDN (ie CloudFlare) your
         | absolute numbers will be way off.
        
           | rayshan wrote:
           | This. Just got bitten by this by using Vercel's serverless
           | functions edge caching. More details:
           | https://twitter.com/rayshan/status/1295521974479798274?s=21
        
       | arielm wrote:
       | This looks really nice! If... you're only looking for high level
       | numbers for something like a personal blog or a simple landing
       | page for a mobile app.
       | 
       | 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.
        
       | thinkmassive wrote:
       | A comparison of Umami and Matomo (formerly Piwik) would be
       | helpful since they seem very similar. I looked at both websites
       | and didn't see any mention of the other project.
        
       | mcao wrote:
       | Hi everyone!
       | 
       | 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.
        
         | sorenbs wrote:
         | This is a really cool project. I'm happy to see that you are
         | using Prisma for data access. If you are interested we can set
         | up a shared slack channel so you can provide feedback and we
         | can make sure we support everything you need for this project
         | :-)
        
           | mcao wrote:
           | This is my first time ever using Prisma and I'm a huge fan of
           | it already. It did run into a few gotchas and would love to
           | discuss.
        
             | sorenbs wrote:
             | Contact info is in my profile. Please send an email so we
             | can set something up :-)
        
         | imedadel wrote:
         | This is an awesome project. Is Postgres good enough for high
         | traffic or would it be better to switch to Redis?
        
         | dom96 wrote:
         | Nice! Question for you, how did you make that nice 3D image on
         | the front page with various screenshots overlaid over each
         | other? :)
        
           | mcao wrote:
           | It's all done in Photoshop. Just take screenshots, then
           | transform, rotate, distort them to look flat. Then add some
           | drop shadows for a 3d look.
        
         | killerpopiller wrote:
         | Matomo (former Piwik) is an alternative imho.
        
           | modoc wrote:
           | Unsure about Umami's performance, but Piwik was a non-starter
           | for several higher traffic sites I worked with due to
           | performance issues (even after throwing big hardware at it).
        
           | noahth wrote:
           | One big difference is that Matomo doesn't support PostgreSQL
           | and has said they don't plan to.
        
         | newusertoday wrote:
         | what are your thoughts on using ui-frameworks like material/ant
         | etc. I checked the github and it looks like you have written
         | all components including css by yourself.
        
           | mcao wrote:
           | For personal projects I tend to write all the CSS and
           | components myself. I just like being able to control
           | everything down to the pixel without reading some
           | documentation. But that's just my workflow. I say just use
           | whatever gets the job done. The only thing I used was
           | Bootstrap grid for responsive layouts. Tailwind CSS is pretty
           | popular.
        
             | throwanem wrote:
             | Can confirm, Tailwind is legit.
        
         | blahblah4332 wrote:
         | This would definitely be really interesting if it had the
         | ability to create analytics in response to UI interactions.
         | There are a lot of SPAs out there that use analytics for
         | feature tracking, and the self-hosted aspect would fit well
         | with those users.
        
           | mcao wrote:
           | Event tracking is already supported in the build. I just
           | haven't completed the UI components yet. You simply add a
           | custom CSS class on an element and it will automatically be
           | tracked.
        
             | blahblah4332 wrote:
             | Oh OK, I didn't see that when I scanned the documentation.
             | CSS is an interesting solution for that
        
         | adventured wrote:
         | Great project. I'm going to follow its development and consider
         | using it in the near future.
        
         | anderspitman wrote:
         | Since it's self-hosted, is there a reason you went postres
         | rather than something simpler like sqlite or even flat files?
        
           | mcao wrote:
           | It uses prisma.io for the database connections and SQLite is
           | supported. I just haven't had the time to implement it yet
           | and make sure all the custom queries are working. I would
           | welcome a PR.
        
         | mescalito wrote:
         | Looks really neat! It might be really interesting if the live
         | demo is the actual live stats of your umami.is :)
        
           | mcao wrote:
           | I will switch it over at some point. I've been running it on
           | my own sites for a month so I just wanted to provide an
           | example with more data to play with.
        
       | dylan604 wrote:
       | How useful are the metrics from non-GA sources trusted when
       | validated traffic to various groups like investors, advertisers,
       | etc?
        
         | mxuribe wrote:
         | Quite intriguing! I have no experience pitching to investors or
         | advertisers, (but i do have web analytics exp.) and never would
         | have thought that this would even be a question! Curious, is
         | this something that you encountered, or is this hypothetical?
        
           | dylan604 wrote:
           | I had heard in the past that if your numbers were not GA,
           | then they did not put much weight into them. Since you can
           | grant access to other people directly into GA, they can
           | validate the data. Using awstats or other metrics were deemed
           | less trustworthy since they required someone gathering the
           | data (which allows for potential manipulation). Before the
           | days of 3rd party advertising, people tried to sell local ads
           | just like a news paper. The website with more visitors could
           | charge more for the ad banner space. Some "little" blog would
           | have to prove they received the amount of traffic.
        
       | [deleted]
        
       | hugey010 wrote:
       | I've used https://count.ly/ instead of Google Analytics to gather
       | exception data and business analytics from mobile and web apps.
       | Relatively cheap for decent scale and they're very nice and
       | helpful.
        
       | gramakri wrote:
       | Demo gives a 502
        
         | mcao wrote:
         | Should be back up now.
        
       | andrewzah wrote:
       | I have been using goatcounter [0] and love the simplicity. I used
       | to use Matomo, but they want a lot of money to see the referrals
       | from google search/etc. And it's a heavier dependency.
       | Goatcounter is a drop-in golang binary.
       | 
       | [0]: https://github.com/zgoat/goatcounter
        
       | bambam24 wrote:
       | Clicked on love demo and get 505 bad gateway. I hope they
       | analyzed it
        
       ___________________________________________________________________
       (page generated 2020-08-18 23:00 UTC)