Open source · API
LinkForge
Une API de raccourcissement d'URL avec authentification, clés d'API, suivi de clics asynchrone et anonymisé, et analytics. Conçue pour rester rapide et tenir la charge, même quand les redirections s'enchaînent.

// Contexte
Pourquoi ce projet
Le raccourcisseur d'URL est un classique trompeur : facile à faire mal, difficile à faire bien. Derrière une simple redirection se cachent des questions de performance, de sécurité et de mesure d'audience.
J'ai voulu en faire un projet à scope court mais exigeant côté back-end : une vraie API, authentifiée, instrumentée, et pensée pour encaisser du trafic sans ralentir la redirection.
// Problème
Ce qu'il fallait résoudre
Trois exigences orientaient toute l'architecture :
- La redirection doit rester instantanée. Mesurer un clic ne doit jamais ralentir l'utilisateur qui suit le lien.
- Des stats utiles, sans pister. Compter et qualifier les clics tout en anonymisant les données personnelles.
- Un accès programmable et sécurisé. Authentification et clés d'API pour intégrer le service ailleurs.
// Solution
L'approche retenue
Le cœur du système sépare le chemin chaud (la redirection) du chemin froid (l'analytics). À chaque clic, l'API répond immédiatement par la redirection et délègue le traitement du clic à une file d'attente, consommée en arrière-plan.
Résultat : l'utilisateur final ne paie jamais le coût de la mesure, et les statistiques se construisent de façon fiable, à son rythme.



// Décisions techniques
Les choix qui comptent
Un framework taillé pour la vitesse
Fastify offre un surcoût minimal par requête : idéal pour un service dont la fonction principale est de répondre vite, des milliers de fois.
Suivi des clics en asynchrone
Chaque clic est poussé dans une file BullMQ (sur Redis) et traité hors du chemin de réponse : enrichissement, anonymisation et agrégation se font en arrière-plan.
Données durables & requêtables
Postgres stocke liens, clés d'API et statistiques agrégées ; Prisma sécurise l'accès avec un typage strict partagé avec le reste de l'API.
// Résultat
Ce que ça donne
Une API complète et documentée qui démontre concrètement ma façon d'aborder le back-end : performance d'abord, mesure fiable ensuite, respect de la vie privée par conception.

