À propos du projet

Counter se présente comme un analytics web simple pour afficher le nombre de personnes visitant une application web. Le projet propose counter.dev comme service hébergé et inclut une démo. Son README décrit la technologie comme un petit serveur Go accompagné d'assets statiques. Les données sont sauvegardées dans Redis, avec une base SQL classique pour l'archive des données anciennes. L'objectif du projet est de servir gratuitement un grand nombre d'utilisateurs de manière durable. Il explique des coûts réduits par le fait de ne collecter que des données agrégées au lieu d'attribuer des identifiants utilisateur individuels via des cookies ou l'empreinte numérique. Cela réduit le coût des requêtes en base de données et la quantité de données stockées. Le comptage des utilisateurs uniques repose sur sessionStorage, le mécanisme de cache du navigateur et l'inspection du referrer. Le README indique que cela réduit la complexité et la charge serveur tout en améliorant la confidentialité, au prix d'une moindre connaissance des utilisateurs ; le projet affirme qu'il ne peut pas et ne souhaite pas relier les pages vues à l'identité d'un utilisateur. Il note également que l'infrastructure est conçue pour une charge élevée grâce à un binaire Go statique pour les requêtes HTTP et une base Redis en mémoire régulièrement sauvegardée sur disque. Le README argue que cette approche est plus économique qu'une base relationnelle typique accédée par un langage scripté, et que des serveurs dédiés ou virtuels peuvent offrir plus de performances pour le même prix que l'hébergement en plateforme-as-a-service, au prix d'une gestion manuelle. Un problème lié est cité comme validation en conditions réelles : servir des millions de visites uniques par mois aurait utilisé environ 25 % d'un petit VPS coûtant 5 dollars par mois. Avec quelques centaines d'utilisateurs actifs, les coûts non fixes sont décrits comme étant d'environ un centime par utilisateur et par mois, plus le domaine et un service de sauvegarde VPS supplémentaire. Pour le développement local, le README recommande de lancer make devserver et note qu'un serveur Redis est nécessaire sur localhost et le port par défaut. Les instructions d'autosocialisation sont liées au dépôt counter.dev-selfhost séparé. Le blog est basé sur Pelican, avec des templates dans templates/blog, des articles dans posts, et une génération via make blog ; il est autogénéré à chaque déploiement. La FAQ mentionne une incertitude concernant l'évitement d'une bannière de cookies, en référence à la directive ePrivacy et à une proposition de nouveau règlement ePrivacy. Les contributeurs listés sont Ana Maria Sandoval Jimenez, data scientist, et Irae Hueck Costa (ihucos), développeur backend. Counter est sous licence AGPL et open source pour la transparence.