Cinquième épisode, avec un trio un peu à part : un outil d'analytics, un framework pour construire des sites, et un gestionnaire de tâches. Pas vraiment une stack qui fonctionne ensemble comme les épisodes précédents, mais trois outils que j'ai utilisés récemment et qui méritent clairement leur place ici.

Umami — savoir combien de visiteurs, sans les espionner

Umami, c'est l'alternative privacy-first à Google Analytics. Le principe est simple : un script de tracking ultra léger (quelques Ko, contre les centaines de Ko du gtag classique), zéro cookie, zéro donnée personnelle collectée, et pourtant tu as toujours les infos essentielles — pages vues, provenance du trafic, durée de session, taux de rebond. Techniquement il fait ça en générant un identifiant de visiteur à la volée à partir d'un hash quotidien (IP + user agent + un salt), donc pas besoin de bannière RGPD à la con puisqu'aucune donnée identifiante n'est stockée.

Je l'ai mis en place sur le site que j'ai construit pour mon père (kiné-ostéo, donc zéro tolérance pour un outil qui traînerait ses patients dans un système de tracking publicitaire), et le déploiement en lui-même est direct : une image Docker, une base Postgres derrière, et un dashboard propre pour suivre le trafic sans avoir à fouiller dans une interface Google Analytics devenue illisible à force d'ajouts. Le seul vrai piège que j'ai rencontré, c'est purement Traefik : si ton instance Umami tourne derrière un reverse proxy, faut bien configurer les trustedIPs pour que les IPs remontées dans les stats soient les vraies IPs des visiteurs et pas systématiquement l'IP interne du proxy — sinon tu te retrouves avec 100% de ton trafic qui vient soi-disant du même endroit, ce qui rend les stats géographiques complètement inutiles.

Astro — le framework qui remet les sites statiques au centre

Astro, c'est un framework pour construire des sites qui a fait un choix assez culotté à contre-courant de la tendance "tout en JS côté client" : par défaut, il envoie zéro JavaScript au navigateur. Le concept s'appelle l'architecture en îlots — tu écris tes composants avec React, Vue, Svelte ou même juste du HTML/Markdown, Astro les compile en HTML statique pur, et seuls les composants qui ont vraiment besoin d'interactivité (un carrousel, un formulaire dynamique) chargent leur JS, isolément, comme des petites îles dans un océan de HTML statique.

Le résultat concret, c'est des sites qui chargent quasi instantanément et qui scorent au max sur les audits de performance, sans avoir à se battre contre du code splitting ou du lazy loading manuel. Pour un site vitrine comme celui que j'ai fait pour mon père — quelques pages, pas de logique complexe, juste besoin que ça charge vite et que ça soit propre — c'est exactement le bon outil : pas besoin de trimballer tout le poids d'un framework SPA pour afficher des horaires de cabinet et un formulaire de contact. Et comme c'est buildé en fichiers statiques purs à la fin, l'hébergement devient trivial : n'importe quel serveur web basique (ou même juste Traefik qui sert des fichiers) suffit, pas besoin de runtime Node qui tourne en permanence.

Vikunja — la gestion de tâches qui ne t'impose pas sa méthode

Vikunja, c'est l'alternative self-hosted à Todoist ou Things. Projets, tâches, sous-tâches, étiquettes, dates d'échéance, vues Kanban ou liste ou Gantt selon ce qui te parle le plus — l'idée c'est qu'il ne t'impose pas une méthodologie précise (contrairement à d'autres outils plus dogmatiques façon GTD strict), tu montes ton organisation comme tu veux.

Je m'en sers avec une hiérarchie à deux projets racines, Pro et Perso, avec tout le reste qui se range en dessous — simple, mais ça évite le bazar qu'on finit toujours par avoir avec trop de projets à plat. Côté déploiement, j'ai eu un souci amusant avec l'image scratch qu'utilise Vikunja pour le backend : ces images minimalistes n'ont ni shell ni utilitaires, donc impossible de faire un chown classique pour régler les permissions sur le volume monté. La solution, c'est un pattern d'init-container avec une image busybox qui se lance juste avant, fixe les UID/GID du volume, puis s'éteint pour laisser la main au vrai conteneur Vikunja qui démarre avec les bonnes permissions déjà en place. Une fois qu'on a compris le coup, c'est un pattern hyper réutilisable pour n'importe quelle autre image scratch qui pose le même problème.

En résumé

Trois outils qui n'ont rien à voir entre eux sur le papier, mais qui illustrent bien la même philosophie : on peut avoir des outils modernes, rapides et agréables à utiliser sans filer ses données ou son argent à un service tiers. Umami pour savoir qui visite sans les espionner, Astro pour construire vite et léger, Vikunja pour s'organiser sans se plier à la méthode de quelqu'un d'autre.

Liens utiles

Umami : https://umami.is/
Astro : https://astro.build/
Vikunja : https://vikunja.io/

La Boîte à Outils FOSS #5 : Umami, Astro, Vikunja