DEV Community

Cover image for Fathom: An Open Source Google Analytics Alternative
Jacob Herrington (he/him)
Jacob Herrington (he/him)

Posted on • Updated on

Fathom: An Open Source Google Analytics Alternative

Hey everyone!

I star all kinds of crazy GitHub repos and last week I stumbled on an awesome project that I can't believe I missed for so long.

It's called Fathom -- and it's an open source alternative to Google Analytics (somewhat ironically written in Go).

GitHub logo usefathom / fathom

Fathom Lite. Simple, privacy-focused website analytics. Built with Golang & Preact.

Fathom Lite - simple website analytics

Go Report Card MIT licensed

Fathom Lite is a previous and open-source version of Fathom Analytics (a paid, hosted Google Analytics alternative). It was the very first version of our software, and has been downloaded millions of times!

While we are no longer adding features to this Lite version, we will be continuing to maintain it long-term and fix any bugs that come up.

Screenshot of the Fathom dashboard

Fathom Lite vs Fathom Analytics

Fathom Analytics is much more detailed, feature-rich, and even more focused on privacy-law compliance, than Fathom Lite.

If you’d like to become a customer of Fathom Analytics, and not have to worry about servers, maintenance, security, you can give our software a try with a 30-day free trial (this link will give you $10 credit).

Screenshot of the Fathom Analytics Dashboard

If you're interested in analytics or data (or just the Go programming language) this is an awesome project to get involved in!

Top comments (21)

Collapse
 
antogarand profile image
Antony Garand

There is also Matomo which has been there for a while now and is very active!

GitHub logo matomo-org / matomo

Liberating Web Analytics. Star us on Github? +1. Matomo is the leading open alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites, apps & the IoT and visualise this data and extract insights. Privacy is built-in. We love Pull Requests!

Matomo (formerly Piwik) - matomo.org

Latest Stable Version Latest Unstable Version License

Code Status

Build Status Percentage of issues still open

Description

Matomo is the leading Free/Libre open analytics platform.

Matomo is a full-featured PHP MySQL software program that you download and install on your own webserver At the end of the five-minute installation process, you will be given a JavaScript code Simply copy and paste this tag on websites you wish to track and access your analytics reports in real-time.

Matomo aims to be a Free software alternative to Google Analytics and is already used on more than 1,400,000 websites. Privacy is built-in!

Mission Statement

« To create, as a community, the leading international open source digital analytics platform, that gives every user full control of their data. »

Or in short:

« Liberate Web Analytics »

License

Matomo is released under the GPL v3 (or later) license, see LICENSE

Requirements

  • PHP 5.5.9 or greater
  • MySQL version 5.5 or greater, or MariaDB
  • PHP…
Collapse
 
moopet profile image
Ben Sinclair

I was going to ask how this compared to Piwik (which has been around since the dinosaurs roamed the Earth) but I see Matomo is Piwik now :)

Collapse
 
simo97 profile image
ADONIS SIMO

since the dinosaurs... hahah... i was thinking about the same thing

Collapse
 
starchild profile image
starchild

but at $1600/YEAR for the decent plugins, it's a complete deal breaker.

Collapse
 
zeerorg profile image
Rishabh Gupta

Matomo is the default choice for "self hosted Google analytics alternative" still a new project is always welcome

Collapse
 
shamar profile image
Giacomo Tesio • Edited

Nobody is able to analyze webserver's logs anymore?

Why you have to put a JS script in your pages?

Collapse
 
defman profile image
Sergey Kislyakov

It's hard to analyze more than page views using only webserver logs. I might be interested in some specific user behavior (e.g. how much times he clicked this button, etc.). That's why we have to put a js script.

Collapse
 
shamar profile image
Giacomo Tesio

You don't need js for that, a querystring is enough.

Thread Thread
 
sebastiandg7 profile image
Sebastián Duque G

Not really. What about SPAs?

Thread Thread
 
defman profile image
Sergey Kislyakov • Edited

Let's have a simple case. How are you going to analyze how much times a user clicked a button? I don't want to reload the page on each click (to send a GET request) and AFAIK there's no way to do that without JS. And if I can use JS for that case, why would I want to do that if I can simply myTracker.send({'action': 'my-button.click', ...})?

Thread Thread
 
shamar profile image
Giacomo Tesio

It's quite obvious that if you are using JS anyway, a little more bloat doesn't change much.

However there is often no reason to use JS and plenty of reasons to NOT execute third party's code on your users' machines if you care about your users' privacy and security.

Thread Thread
 
shamar profile image
Giacomo Tesio

If that button does anything relevant, it's going to leave evidences on your server anyway. Theoretically, we don't really need JS to reload a subset of a page on a button click: HTML and CSS are enough, with proper uses of IFRAME.

However you are right that, if you are using JS anyway, a bit more bloat doesn't change much.

The point is that we shouldn't use JS just because it exists, but only if there's something we cannot really do otherwise. Forcing our users to execute code we didn't write and we don't feel responsible for is rude: we are wasting their resources (and potentially compromising their security) just to save some money.

Collapse
 
andy_preston profile image
Andy Preston • Edited

I don't think you understand what Google Analytics is.

Web server logs wont help me understand the age and gender of my audience. GA does.

Google analytics allows me to easily export reports and view metrics graphically.

Teams within my business use the conversation tracking tools to measure where different parts of our site drive the most sales.

GA is used for more than simply tracking hits on a page.

Collapse
 
shamar profile image
Giacomo Tesio

ROTFL!

I understand very well what Google Analytics does.

You CAN get much of the same insight from properly configured server logs on a properly designed website.

GA build good reports on top of data collected through JS, but you could build similar reports by yourself and people used to do that sort of analytics before it.

The problem is that website owners sell their visitors' data for such reporting.

So it's way cheaper to them than a good team of developers and data analysts.

Everybody is fine... except milking cows users.

Collapse
 
fahrenholz profile image
Vincent Fahrenholz

I can't remember the last time I was truly interested in insight and had an app on a single server, non-loadbalanced and so on. A distributed system is a pain in terms of log scraping if you don't have the adequate tooling (ELK, Graphite,...). Some JS-include may be a less costly solution.

Collapse
 
shamar profile image
Giacomo Tesio • Edited

It obviously depends on how you design the web site / web application.

JS-includes are cheaper for developers, but expensive (in term of both security and computing resources) for users.

Collapse
 
sebastiandg7 profile image
Sebastián Duque G

So what about putting some JS for our browsers to execute? This is not the 90's web.

Collapse
 
shamar profile image
Giacomo Tesio

This is not the 90's web.

True.

After the crash of 2000 we have slowly turned a dream to a nightmare.

And after Cambridge Analytica, after Snowden and after event-stream, I wonder how we can still argue that it's all fine.

We are abusing users' ignorance.

Collapse
 
biros profile image
Boris Jamot ✊ /

Analytics are useful for generated static sites (jekyll, hugo, ...) hosted on gitlab or github.
Otherwise, I agree that embedding a JS that sends requests just to compute stats is kinda weird.

Collapse
 
alanhylands profile image
Alan Hylands

Paul Jarvis is one of the team behind Fathom so been meaning to check it out. His recent book Company Of One is worth a read for anyone interested in the bootstrapping/self-employed/small biz world. Worth joining his mailing list too as he's a very good writer.

(Note: I am not a Paul Jarvis shill, just an appreciator of his work).

Collapse
 
andrewdejackson profile image
Andrew Jackson

I also recommend the microanalytics.io/ . I like this service because I can start free/unlimited.