
Le problème.
ToBill est une plateforme SaaS de facturation et de gestion administrative pour PME suisses. Le client cherchait à remplacer un outil legacy PHP devenu impossible à maintenir, avec l'objectif de scaler à plusieurs milliers d'entreprises sans dégrader la qualité de service.
L'enjeu principal : migrer la base existante (clients, factures, devis, comptables) sans interruption, tout en posant les fondations d'une architecture multi-tenant robuste, conforme aux exigences fiscales suisses (TVA, QR-facture, archivage).
Le périmètre incluait également l'intégration Stripe pour les abonnements, un dashboard analytique pour le pilotage, et une API REST documentée pour les intégrations tierces (logiciels de comptabilité, CRM).
Choix techniques.
- →Architecture multi-tenant à row-level avec PostgreSQL + Laravel — un schéma unique, isolation par tenant_id, performances stables jusqu'à 10k tenants
- →Frontend React + TypeScript découplé via API REST versionnée, déployable indépendamment du back
- →Stripe Billing pour la facturation des abonnements ToBill (auto-liquidation TVA CH/UE selon pays)
- →QR-facture suisse (norme SIX) générée à la volée, vérifiée contre les standards Swiss QR Bill
- →File de jobs Redis pour les tâches lourdes (envoi de factures, génération PDF, exports comptables)
- →Monitoring Sentry + métriques applicatives Grafana, alerting Slack sur incidents critiques
Stack
Étapes clés.
Audit & cadrage
2 semaines d'audit du legacy, cartographie des flux, modélisation de la nouvelle base, devis détaillé.
Build itératif
14 semaines en sprints de 2 semaines, démos hebdomadaires avec le founder, déploiement continu en staging.
Migration en prod
Migration progressive des tenants par cohortes, double-run pendant 4 semaines, bascule définitive en off-hours.
Run & TMA
Contrat de TMA mensuel, monitoring 24/7, releases bi-mensuelles, on-call partagé avec l'équipe interne.
Mesuré en prod.
Un projet similaire ?
Démarrer un projet, ou simplement comparer des approches sur ton cadre.