
ScormPilot
Plateforme SaaS de gestion et diffusion de modules SCORM
Produit conçu, développé et mis en production en solo. Alternative simple aux LMS rigides pour les organismes de formation : versioning, multi-diffusion, analytics, multi-tenant. Plusieurs milliers de players quotidiens, dizaines de clients actifs.
100%
Solo
Conception à production
Milliers
de players quotidiens
7
Apps
Monorepo Turborepo
99.9%
Uptime
Dizaines
de clients actifs
Multi-tenant SaaS B2B · RGPD conforme · Hébergement 100% européen · SCORM 1.2 & 2004 · Tours, France
Le projet
Le problème
Les organismes de formation qui vendent des modules SCORM n'ont aucun contrôle une fois le fichier ZIP envoyé au client. Les LMS sont rigides, coûteux et surdimensionnés pour la simple diffusion de contenus e-learning.
La solution
ScormPilot centralise les modules SCORM et permet leur diffusion multi-canal (lien, iframe, SCORM connecté, Teams). L'organisme garde le contrôle sur le versioning, les accès et les analytics de ses contenus.
Mon rôle
Conception produit, architecture, développement de 7 applications (API, dashboard, player, runtime, Teams, status page), infrastructure cloud et mise en production. Tout en solo, du premier commit a la premiere facture.
Résultats
MVP robuste livré en 3 mois. Adopté par une dizaine d'organismes de formation, plusieurs milliers de players quotidiens, dizaines de clients actifs. Produit en croissance continue avec un modèle SaaS récurrent.
L'application en images
Dashboard admin, gestion des modules, suivi des clients et analytics détaillées par module.
Ce que j'ai construit
Dashboard analytics, gestion multi-tenant, diffusion multi-canal et runtime SCORM custom. Un produit complet déployé en production.
Dashboard Analytics
Tableau de bord complet avec KPIs en temps réel : nombre d'utilisateurs, taux de complétion, score moyen, durée moyenne, tendance des lancements. Filtrage par client et par date.
Gestion des Modules
Upload, versionning et pilotage à distance des fichiers SCORM. Remplacement de la source sans recharger côté client, tracking des progressions par module.
Multi-diffusion
Quatre modes de diffusion : lien unique, code iframe, SCORM connecté (tracker injecté), application Microsoft Teams. Le client choisit son canal.
Multi-tenant
Chaque client dispose d'un pool d'utilisateurs isolé via Firebase Identity Platform. Trois modes d'authentification : email, anonyme, LMS.
RGPD & Sécurité
Hébergement 100% européen (GCP Belgique, DigitalOcean Frankfurt). Aucune donnée personnelle superflue collectée, serveurs dédiés par organisme.
SCORM Player & Runtime
Player React avec mode démo et login LMS. Runtime vanilla TypeScript : orchestration SCORM complète, monitoring de connexion, observation des commits.
Infrastructure Production
CI/CD GitHub Actions, containers Docker sur Cloud Run, PostgreSQL managé, Firebase Auth/Storage. Status page sur Cloudflare Workers. 99.9% uptime.
Internationalisation
Dashboard admin avec next-intl, player SCORM avec i18next. Interface disponible en français et anglais, extensible à d'autres langues.
Décisions techniques
Une architecture hexagonale avec DDD, pensée pour la scalabilité et l'isolation multi-tenant des données.
Architecture Hexagonale
Séparation stricte domain / application / infrastructure. 4 bounded contexts (Organisme, Client, Module, Plan), 22 use cases, 25+ value objects, 7 ports d'abstraction.
Monorepo Turborepo
7 apps (API Fastify, Dashboard Next.js, Player React, Runtime SCORM, Teams App, App Builder, Status Page) et 5 packages partages (drizzle, libs, types, ui, config).
Multi-tenant & Auth
Firebase Identity Platform avec tenant dédié par client. Trois modes d'auth (email, anonyme, LMS). Validators domaine pour l'isolation des données entre organismes.
DI & Qualite
InversifyJS pour l'injection de dépendances. Validation Zod au démarrage (env vars). Containers Docker non-root, secrets validés au boot.
Technologies utilisées
Questions fréquentes sur ce projet
Les questions que mes clients m'ont posées sur cette mission.
- Pourquoi 5 applications séparées et pas un monolithe ? +
- Chaque app a un cycle de release différent : API et dashboard évoluent vite, lecteur SCORM doit être ultra stable (clients = organismes de formation), runtime SCORM doit fonctionner offline, app Teams doit suivre les contraintes Microsoft.
- Multi-tenancy, comment c'est implémenté ? +
- Schema-per-tenant PostgreSQL avec migration automatique à l'onboarding client. Isolation forte des données (exigence des organismes de formation pour leurs apprenants).
- Combien de joueurs supportés en production ? +
- Plusieurs milliers de sessions quotidiennes au moment du lancement. Architecture pensée pour scale horizontal sans intervention manuelle.
- Tu as livré ça vraiment seul ? +
- Oui, en solo de juin 2025 à aujourd'hui. Stack moderne + Clean Architecture + CI/CD = un dev autonome peut livrer un SaaS multi-app. C'est la promesse de mon offre développement SaaS.
