I went through numerous web analytics tools throughout my metrics journey for my website. I think the first one was Matomo. Back then, it was probably the only product that was easy to set up. I have used it for several years. Then I thought that it had a lot of data that I simply didn't need or use. And I started to look for something else. That's when I found the Goatcounter. It wasn't a self-hosted solution, but it was minimal enough. I used it for about a year. There were some bugs here and there sometimes, and the updates were pretty rare and, out of boredom, I decided to try something else. Now I was in search for something I could host myself. That was Ackee. It was even more minimal. Very easy to install. I even started to support it on GitHub. But at some point the updates just stopped. So I decided to stop my subscription and look for something else again. And I found Umami. It was not as minimal as Ackee, but at least it received updates regularly. Again, easy installation. But now another problem emerged — the updates were so often that they were breaking things. At some point, the app just stopped showing new data. At this point, I was a bit tired of this app hopping and just removed any analytics from my website.
Until I found the piratepx.
I was pleasantly surprised at how minimal it was, and it actually provided me with all I needed. It just showed me the visits. Yeah, sometimes it's interesting to see where they come from. But most of the time it's not that important. And I used it for a while. And I'm still pretty happy with it. Probably the go-to app if anybody asks me for a web analytics tool for their personal project.
But then I thought, well, this is a very simple data structure. A path and an array of timestamps/visits associated with it. And I realised that there are just 2 requests: to get all the visits and to post a visit, and a database where I can store this data. Immediately I thought about Redis. This is exactly the use case for it. And there are providers, like Upstash or Render, that provide you with free Redis instances (and other good stuff). So, as a proof of concept, I quickly coded a local Node.js script to test out the requests. I used ioredis as a client. Everything worked perfectly.
By the way. I worked with Redis once, around 3 years ago, and did not remember anything. And I still don't have in-depth knowledge of it. I ended up using ChatGPT to create all the Redis-related code. I had no response at all on Stack Overflow. I have mostly negative feelings about this. It's sad that people ignored my question. And this pushed me towards AI, which I don't really like to use. During my experience, I was getting non-working code relatively frequently. Anyway, yeah, I could have read the docs. But I just wanted to quickly code a proof of concept, not some complex thing that I would need to maintain for years to come. I didn't want to spend 90% of my time on reading the docs and 10% on coding just to forget everything afterwards, because I don't work with Redis on a daily basis.
And so, I made ANALOG. A minimal event tracking tool. Right now you can either run it locally or deploy it to Netlify. To my surprise, it was extremely easy. I just had to add the netlify.toml config and that's it. I still struggle to deploy it to Vercel. I have no clue how to solve it, but hopefully at some point I'll do it. In the end, I want to have a stable app that anyone can simply throw into one of these services and have it running with the least amount of effort.
Check it out here!
