Dynamic features for static sites
EndTRACKER started as a super-simple and privacy-respecting web analytics service. The software has grown to incorporate other features typically found in dynamic sites, such as page voting and commenting.
This project started a response to my frustration with Google Analytics’ and Disqus’ complexity and intrusiveness and has been a fun side project to experiment with developing, deploying, and maintaining a REST service. As a result, this service now supports this site, built with Hugo, by exposing features that are often only found in dynamic CMSs.
This tracker is lightweight (less than 5k SLoC) and privacy-aware: the tracker does not need cookies, does not rely on any kind of client-side fingerprinting, and records roughly the same set of data that any web server would log when processing requests. See the privacy page for more details.
EndTRACKER is written in Rust, is deployed as an Azure Functions service, is backed by a PostgreSQL database, and uses Chart.js for graphing. The name of the project resembles EndBASIC because the foundations of the service are directly derived from the code I wrote for the EndBASIC web service.
This project is not free software and is not used by anyone but me, mostly because I have no desire right now to run this as an open-source project or a hosted public service. You can see how the metrics look like by visiting the statistics page of this blog. But, if you have any interest in using EndTRACKER for your site, let’s talk! The backend is designed to support multiple sites so, in principle, I could onboard other people too… after figuring out various issues.
Take a look at the posts below for more information.