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.

FastifyTypeScriptPrismaPostgreSQLRedisBullMQ
RôleConception & dév.
Période2026 · 2 sem.
TypeProjet perso
StatutEn ligne
Documentation de LinkForge

// 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.

Création d'un lien court + clé d'API
Analytics — clics dans le temps
Architecture: redirection → file d'attente → analytics

// Décisions techniques

Les choix qui comptent

Fastify

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.

PourquoiLa latence de redirection est le critère n°1 du produit.
Redis · BullMQ

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.

PourquoiDécoupler la mesure de la redirection garantit des temps de réponse stables sous charge.
Prisma · PostgreSQL

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.

PourquoiDes analytics fiables demandent une base relationnelle solide, pas un simple cache.

// 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.

2chemins séparés : chaud / froid
Asyncsuivi des clics hors réponse
Anonymeanalytics sans données perso