Startup

ArtiConnect

articonnect.fr · « le Doctolib des artisans » · marketplace de services

Développeur fullstack seniorJanv. 2026 → Juil. 2026 · 7 moisVisiter le site (nouvel onglet)

Une marketplace d'artisans, pilotée par un fondateur non technique. À mon arrivée : deux applications Flutter en production, toute la logique côté client et pas de cahier des charges. J'ai d'abord extrait les règles métier du code existant, puis j'ai recommandé par écrit au fondateur de reconstruire : une API (Rust, Axum), puis l'application web Next.js, puis deux applications React Native, l'une pour les particuliers, l'autre pour les professionnels. La nouvelle plateforme reste compatible avec les applications déjà installées chez les clients.

Équipe : le fondateur, non technique, et le développeur des applications d'origine.

1logique métier partagée par le web et les deux applications mobiles, au lieu d'une copie par application
0mise à jour imposée aux utilisateurs des applications installées

Un cahier des charges extrait du code

Sans spécification, la seule vérité était le code en production. Je l'ai fait lire par des agents IA pour en extraire les règles métier, puis j'en ai tiré les user stories.

  • Seules les fonctionnalités câblées de bout en bout sont entrées dans le cahier des charges, sans le code mort.
  • Chaque bug hérité tranché : reproduit quand l'ancienne application dépend du résultat, corrigé sinon, corrigé d'office quand la sécurité l'exige.
  • Le cahier des charges est devenu un test de contrat exécutable.

Rester compatible avec les applications installées

Les utilisateurs ne pouvaient pas être forcés à mettre à jour. La nouvelle API a été conçue pour que chaque écriture reste lisible par toutes les versions en circulation.

  • Compatibilité testée sur des exports de production réels.
  • Après un incident en production : correctif le jour même, protocole de changement de format, et post-mortem remis au fondateur.

Reconstruction recommandée par écrit, options chiffrées

Les deux applications lisaient et écrivaient la base en direct, avec la logique métier dupliquée entre l'application pro et l'application particulier. Rafistoler aurait gardé les deux copies. J'ai recommandé par écrit au fondateur de reconstruire, avec les options chiffrées, puis j'ai réimplémenté les fonctionnalités à l'identique, à partir de user stories et sans le code mort : d'abord l'API, puis l'application web Next.js, puis les deux applications React Native.

API Rust et client généré pour le web et le mobile

API Rust en architecture hexagonale. Son contrat OpenAPI génère le client partagé par le web Next.js et les deux applications React Native : une seule logique métier au lieu d'une copie par application, et le compilateur signale les écarts entre l'API et les écrans. La CI échoue si le contrat dérive du code.

Préparer la bascule sur les stores

Les nouvelles applications React Native reprennent la place des anciennes sous les mêmes identifiants : les utilisateurs gardent leur application, ses notes et ses avis. Un contrôle de version bloque les versions trop anciennes, mais laisse passer un utilisateur hors ligne.

Décider avec un fondateur non technique

  • Décisions prises avec lui par questionnaires en français courant : options numérotées, chacune avec son coût.
  • Tableau de bord conçu pour qu'il n'ait jamais à ouvrir un outil d'analytics.

Supervision de production

Sentry et OpenTelemetry réglés pour qu'une panne fournisseur produise une seule alerte au lieu d'un flot d'erreurs.

Stack technique

EnvironnementRust (Axum) · OpenAPI · TypeScript · Next.js · React · React Native · Expo · Zod · Tailwind · Firestore · Stripe · Kubernetes · Helm · Vercel · GitLab CI · Playwright · Maestro · Sentry · OpenTelemetry ; reprise d'applications Flutter
BackendRust (Axum) · architecture hexagonale · OpenAPI généré depuis le code · Firestore · Stripe
WebNext.js / React · client TypeScript généré · TanStack Query · Zod
MobileReact Native / Expo, à la place des applications Flutter
Infra / qualitéKubernetes · Helm · GitLab CI · OpenTelemetry · Sentry · PostHog
MéthodeReverse engineering avec des agents IA · Claude Code au quotidien, sous revue

Un contexte similaire ?

Planifier un échange