Plateforme d'analytics web privacy-first développée pour des clients business. Suivi du trafic sans cookies ni bannière de consentement, grâce à un système d'identification anonyme par hash quotidien rotatif.
Contexte
Les clients souhaitaient une alternative à Google Analytics qui respecte la vie privée de leurs visiteurs. Pas de cookies, pas de consentement requis, pas de données personnelles stockées. Une solution légère, conforme RGPD par design, avec un dashboard complet pour piloter leur activité.
Architecture
Application Next.js 16 full-stack déployée sur Vercel. Base de données PostgreSQL avec Drizzle ORM (7 tables). Script de tracking léger (~3.4 KB) injecté côté client via balise script. API REST avec endpoint de collecte CORS cross-origin, authentification par sessions httpOnly et protection CSRF.
Stack technique
Frontend : Next.js 16 + React 19, TypeScript 5, Tailwind CSS 4, shadcn/ui, Recharts (graphiques), nuqs
Backend : Drizzle ORM + PostgreSQL (postgres-js), Resend (emails transactionnels), ua-parser-js (parsing User-Agent)
Sécurité : scrypt (N=32768, r=8, p=2), sessions 8h httpOnly, CSRF middleware, rate limiting (30 req/10s par IP), CSP headers
PWA : Service Worker, install prompt, pull-to-refresh
Fonctionnalités clés
Tracking automatique : pageviews (chargement + navigation SPA), clics sortants, clics téléphone (tel:), clics email (mailto:), soumissions formulaires, clics CTA (data-track), événements custom (API JSON, max 1 KB). Système heartbeat 30s pour mesure précise de la durée de session.
Dashboard temps réel : statistiques visiteurs/pageviews avec comparaison par période (7j/30j/12m/custom), top pages, sources de trafic, répartition devices (desktop/mobile/tablette + navigateur + OS), données géographiques (pays), suivi des conversions, graphique journalier Recharts, durée moyenne de session, filtre par page.
Panel admin : gestion multi-sites (CRUD, snippets d'intégration copiables), gestion clients (création, édition, assignation sites, reset mot de passe), journal d'audit paginé (20 entrées/page).
Privacy by design : zero cookie, visitor ID anonyme (hash SHA-256 quotidien de date + IP + User-Agent + salt, rotation journalière), validation d'origine, aucun stockage d'IP en base.
Rapports automatisés : emails hebdomadaires et mensuels via Resend avec résumé des statistiques par site. Documentation intégrée avec guides d'intégration (WordPress, Webflow, Shopify, Next.js).
Résultats
Solution en production servant plusieurs sites clients. Tracking conforme RGPD sans consentement requis. Script ultra-léger n'impactant pas les performances des sites trackés. Dashboard complet remplaçant Google Analytics pour des clients souhaitant une alternative privacy-first. Architecture serverless scalable sur Vercel.