kis3: Why I'm writing my own website statistics tool

When you host your static website on a service like Netlify, it’s not that easy to get statistics of your website visitors without violating their privacy by using tools like Google Analytics. Because it’s a static website you can’t use some statistics plugins the way you can in WordPress and it’s also not possible to view which pages the server is serving, because Netlify doesn’t give you access to it’s logs.

Currently I’m using the privacy-respecting and open source tool Fathom, that I’m running on a VPS and have a tracking snippet embedded in my websites to get a basic idea of what sites get the most visits and what topics my audience is interested in. Also interesting is the referrer, because that shows from where people visiting my sites come (Google is on rank 1 as usual).

But Fathom has one flaw. It’s using cookies and there is also no way to disable them. There’s an issue on GitHub, but the developers told, they are not going to change this. Fathom needs cookies to count the number of unique visitors and not just the number of page views, because one visitor may visit multiple pages.

Don’t get me wrong, Fathom is a great software and I would definitely recommend it over Google Analytics, but I don’t want to have cookies on my website, at least not cookies which aren’t needed at all costs. I can live without stats about unique visitors or bounce rates, if I could disable cookies.

Because Fathom isn’t going to give us this option and because I really don’t understand why they reject every request for it, I decided to develop my own statistics tool. The goal is to “Keep It Simple Stupid”. That not only counts for the tracking (just track what’s really needed and actually useful - give options to enable / disable features), but also to the software architecture and features itself, it probably won’t get a full blown backend written in Angular, VueJS or whatever framework, but rather different interfaces to get all the information the way you want to.

In my post “Exploring Go”, I already wrote, that I used Kotlin/JVM in the beginning, but due to technical reasons I switched to the Go programming language and started to rewrite all of the existing code (that wasn’t that much though).

Now I’m done with rewriting it and released it’s code to the public. It is definitely not production ready yet, there nothing beside some really basic not-test-covered code itself in the repository yet (at the time of writing), but I will try to fix this in the next time.

So kis3 will not only enable me (and hopefully others too) to have a more minimalistic and privacy-respecting alternative to get basic website statistics, but it is also a new side-project of mine which even gives me the opportunity to learn a new programming language (I’m no Go expert yet, but I really like it) and makes a lot of fun working on.

Jan-Lukas Else avatar
About Jan-Lukas Else
20 years old student who writes about everything he cares about.