Aller au contenu
Dimitri Robiere PerrietD. R. PerrietCaen, FR — --:--:--FR · EN

Intranet sur mesure Next.js pour une agence web

Sous contrat · Mediapilote● En ligne
Client
Mediapilote
Rôle
Développeur full-stack
Durée
en cours
Année
2026
Stack
Next.js · React · TypeScript · Cloudflare Workers · Cloudflare D1 · Drizzle ORM · Auth.js · Vercel AI SDK
Intranet sur mesure Next.js pour une agence web — illustration
Fig. 01 — Intranet sur mesure Next.js pour une agence web, illustration
(00) — En bref

Intranet sur mesure en Next.js pour l’agence Mediapilote : clients, projets, tickets et temps, devenu fournisseur d’identité OIDC des autres outils internes.

(01)

Contexte

Avant cet intranet sur mesure, Mediapilote suivait ses projets, ses tickets de support et ses temps sur une ancienne plateforme qui ne correspondait plus à l’activité de l’agence. Il fallait la remplacer par un outil unique pour les chefs de projet, les développeurs et le support, sans perdre l’historique.

En parallèle, l’agence s’est dotée d’autres outils internes : SEO, GEO, Google Business Profile, publicité, backlinks, génération d’images. Tous avaient besoin des mêmes clients, des mêmes comptes et des mêmes accès Google. L’intranet est devenu le socle que ces plateformes interrogent.

(02)

Challenge

Le premier enjeu était la reprise des données. Dans l’ancienne base, les « projets » correspondaient en réalité à des clients et les tâches à des projets, tandis que les contrats de support devaient devenir des tickets et non des projets.

Le second tenait à l’architecture. Une fois l’intranet devenu fournisseur d’identité et source de vérité pour plusieurs satellites, chaque évolution devait rester compatible avec eux. Il fallait aussi composer avec les limites de Cloudflare : taille des requêtes D1, durée maximale des Workflows, mémoire des Workers.

(03)

Approche

J’ai construit l’application en Next.js avec des Server Actions validées par Zod et Drizzle ORM, puis écrit un script d’import avec mode dry-run pour reprendre l’ancienne base. Quatre rôles encadrent les accès (admin, chef de projet, dev, support) et les modules se sont ajoutés au fil des besoins : saisie des temps, devis, newsletters et landing pages avec édition collaborative, maintenance d’une flotte de sites WordPress via une extension maison, assistants IA reliés au wiki.

Pour les autres plateformes, j’ai fait de l’intranet un fournisseur d’identité OpenID Connect et exposé une API partenaire documentée dans un portail Scalar, avec des accès de service limités à leur périmètre. Un coffre de jetons Google est partagé entre les outils, les scans IA longs sont découpés en passes reprenables pour tenir dans les limites des Workflows, et toute l’IA passe par AI Gateway vers OpenRouter.

(04) — Résultats

Chiffres clés
940
commits
4
rôles d’accès
OIDC
fournisseur d’identité des outils internes
2026 →
en production
← Projet précédent36 · MyDigitalHorse, programmation orientée objet en PHPProjet suivant02Welva, app iOS de nutrition et musculation en SwiftUI