Projets/01 · Featured

Malta.

SaaS de fret aérien remplaçant un ERP legacy — multi-tenant, AI-assisted, app mobile companion livrée.

Année
2024 — 2026
Durée
18+ mois
Client
Technema
Secteur
Fret aérien · SaaS B2B
Rôle
Front · DA · UX/UI · Design System · Back-end
01Brief

Remplacer un ERP des années 90. Livrer un vrai produit.

Les transitaires aériens font encore tourner leurs entrepôts sur HFSQL/MALTA3 — un ERP Windows-only que personne ne veut toucher. Malta en est la refonte from scratch.

Le brief était simple, le scope ne l'était pas : reconstruire l'ERP en SaaS multi-tenant moderne — opérations entrepôt, IAM, mobile, douanes, facturation — et le livrer comme un produit cohérent.

J'ai rejoint comme spécialiste front-end. J'ai fini par owner la direction artistique, le design system, l'UX/UI de chaque module, et progressivement contribuer au back-end.

02Architecture

DDD, hexagonal, Turborepo.

Sept apps partagent quinze packages — dont un @malta/design-system custom. Les frontières sont enforced par ESLint, pas par Slack.

Apps dans le monorepo
7
WAREHOUSE · IAM · MOBILE · WORKER · ACCOUNTS
Packages
15+
DOMAIN · UI · INFRA
Tests
394
UNIT · INTEGRATION · E2E
Stack
Next + Nest
TYPESCRIPT PARTOUT

L'infra tourne sur Kubernetes (Scaleway), autoscalé avec KEDA sur SQS, observable via Grafana + OpenTelemetry, provisionné par Terraform.

03Design System

50+ composants, une seule voix.

Le design system n'est pas une lib — c'est le contrat qui rend la scale possible.

J'ai construit @malta/design-system avant que la première page soit écrite : tokens, primitives, contrats motion, specs accessibilité. Le plus dur était d'imposer le réemploi — chaque Sidebar, Sheet, OTP, Chart devait sortir du système.

Le résultat : un produit qui ressemble à un produit unique, même avec sept contributeurs en parallèle.

Composants · documentés · versionnés50+Réutilisés sur 7 apps. Imposés par les frontières ESLint.
04Bill — IA embarquée

Un assistant qui livre des actions, pas juste du texte.

Bill stream les réponses et déclenche des actions UI dans le même souffle. La conversation est l'UI.

Bill tourne sur Groq + Llama 4 Scout avec streaming SSE, rate limiting, et tool-calling structuré. Un user demande "Affiche les expéditions en transit de CDG vers DXB cette semaine" — Bill stream la réponse et met à jour les filtres du tableau en temps réel.

Stack & Architecture
Front-end
  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind v4
  • shadcn/ui
Mobile
  • Expo SDK 54
  • React Native
  • NativeWind
Back-end
  • NestJS
  • Prisma
  • PostgreSQL
  • SQS
  • Groq SDK
Infra
  • Kubernetes
  • Terraform
  • KEDA
  • OpenTelemetry
05Mobile

Une app entrepôt qui vit dans la poche.

Les opérateurs ne sont pas assis à un bureau. Ils marchent dans les racks, scannent des codes-barres, signent des bordereaux. L'app mobile est faite pour eux.

Construite sur Expo + NativeWind, design system mirroré, UX one-handed, tap targets glove-friendly, offline-first. Sortie sur le Play Store.

06Résultats

Ce qui a été livré.

Modules
12+
EXPÉDITIONS · DOUANES · FACTURATION
Composants
50+
DOCUMENTÉS · VERSIONNÉS
Assistant IA
Bill
GROQ · SSE · TOOLS
Plateformes
3
WEB · MOBILE · WORKER
07Ce que j'ai appris

Au-delà du front-end.

Malta m'a forcé à arrêter de penser comme un spécialiste front-end et à commencer à penser comme un product engineer. Les lignes se brouillent à cette échelle — et c'est tout l'intérêt. Owner le design system comme un contrat non-négociable est ce qui a fait que ça marche.

Brand, design et code sont le même produit, écrit dans des langues différentes.

↳ Malta · 2024 — 2026