Tonnage
2024 → aujourd'hui · SaaS · BTP & matériaux · Accompagnement long terme · dev + produit
Plateforme SaaS BTP — Tonnage
Plateforme SaaS BTP & courtage de granulats

Tonnage est la plateforme SaaS de référence pour le courtage de granulats en France : elle accompagne plus de 360 conducteurs de travaux et chargés d'études pour comparer les fournisseurs, sécuriser les meilleurs prix et centraliser commandes, livraisons et documents.
On a livré et on fait évoluer trois produits dans un seul écosystème : un site vitrine SEO de plus de 1 000 pages, un espace client SaaS cartographique (Leaflet) avec annuaires fournisseurs/sites/contacts, et un back-office Symfony qui industrialise tout le commercial — pipeline d'offres, consultations fournisseurs, relances, facturation, OCR de devis.
Le marché des granulats — sable, gravillon, cailloux, grave, terre végétale — est éclaté entre des centaines de carrières, plateformes de recyclage et transporteurs. Pour un conducteur de travaux qui commande 5 000 tonnes pour un chantier, identifier le bon fournisseur au bon prix au bon endroit prend des heures de coups de fil, de relances, de comparaisons manuelles de devis PDF.
Tonnage attaque ce problème par le digital : un outil unique qui combine une cartographie géologique × un annuaire pro × un courtage assisté. L'enjeu côté plateforme : tenir 1 000+ pages SEO, une carte interactive multi-couches, un CRM fournisseurs avec OCR, et tout ça avec une équipe technique limitée — donc une stack qui doit être simple, robuste et évolutive.
On intervient sur l'ensemble du périmètre : front Next.js 16, back Symfony 7 + API Platform, intégrations multicanal (Gmail, Brevo, Twilio, Pusher, Algolia, Google Vision pour l'OCR), et déploiement / infra.
Site vitrine & SEO programmatique
1 000+ pages générées · acquisition organique structurée
Le site public sert trois audiences distinctes — visiteur curieux, client courtage, carrier référencé — avec des parcours dédiés. La machine SEO repose sur des templates Next.js 16 qui génèrent des pages au croisement produit × géographie.
Les pages produit couvrent toute la nomenclature granulats (sable 0/1 à 0/10, gravillon 4/6 à 14/20, cailloux 20/40 à 80/120, grave 0/20 à 0/150, terre végétale, évacuation). Les pages géo couvrent chaque département puis chaque ville (`/vente-granulats/{dep}/{ville}`). Le maillage interne entre produits, départements et villes est généré automatiquement, le sitemap est dynamique avec ISR (revalidation horaire pour le blog).
- Templates produit · sable, gravillon, cailloux, grave, terre
- Pages département · /vente-granulats/{dep}
- Pages ville · /vente-granulats/{dep}/{ville} (centaines de communes)
- Maillage interne automatique entre produit, ville, département
- Blog Symfony consommé via API Platform (ISR)
- Sitemap.xml dynamique généré côté Next.js

Espace client SaaS
Carte interactive multi-couches + annuaires + chantiers
Le cœur métier est une cartographie React Leaflet qui affiche en temps réel les sites de matériaux (carrières, plateformes recyclage, dépôts) et les bases transporteurs. Filtres avancés par type de site, nature de roche (calcaire, granit, basalte, recyclé...), forme juridique, secteur d'activité.
Quatre fonds de carte disponibles : plan, satellite, topographique, géologique et lithologique — c'est cette dimension géologique qui fait la singularité de Tonnage sur le marché. Clusters dynamiques (markercluster), recherche fuzzy (Fuse.js) sur villes et entreprises, panneaux latéraux contextuels.
Autour de la carte : un annuaire entreprises (SIRET, sites rattachés, contacts), un annuaire sites (carrières, dépôts, types de matériaux), un répertoire contacts cliquable, et un module chantiers avec géocodage automatique et recherche de fournisseurs à proximité triés par distance.
- React Leaflet · plan, satellite, topo, géologique, lithologique
- Filtres avancés · roche, statut juridique, holding
- Annuaires entreprises + sites + contacts
- Chantiers avec géocodage et matching fournisseurs proches
- 3 plans tarifaires (Gratuit / Standard / Premium)
Back-office Symfony
CRM, pipelines Kanban, OCR de devis
Le back-office est construit avec Symfony 7.1, EasyAdmin et API Platform, complété par des écrans Next.js iframés pour les workflows critiques. Le pipeline d'offres est un Kanban drag & drop avec store Zustand, numérotation séquentielle thread-safe `OFFRE-XXXXX`, drawer de relance et templates email.
Le pipeline de consultation fournisseurs synchronise les emails entrants Gmail par référence (`OFFRE-XXXXX`), passe les devis PDF/images dans un parser maison + Google Cloud Vision pour extraire les prix automatiquement, et présente la comparaison côte à côte. Génération de factures `FAC-XXXXX` (abonnement, courtage, tonnage) en PDF (FPDF/FPDI).
À ça s'ajoutent : pipeline leads site, gestion de flotte, import de grilles de prix Excel (PhpSpreadsheet), exports CSV/Excel, cartographie côté admin avec couches consultations / commandes en cours.
- Kanban drag & drop · pipelines offres / consultations / commandes
- Synchronisation Gmail bidirectionnelle par numéro de référence
- OCR de devis PDF via Google Cloud Vision
- Facturation PDF · abonnement, courtage, tonnage
- Import Excel · grilles de prix fournisseurs
Intégrations multicanal
Email, SMS, push, temps réel
La plateforme orchestre une dizaine de services tiers via Symfony Notifier et Symfony Messenger : Gmail API pour la synchro email, Brevo et Mailjet pour les transactionnels et campagnes, Twilio pour les SMS, Pusher pour les événements temps réel (mise à jour de pipeline en direct), Slack pour les alertes internes.
Côté données : Algolia indexe les annuaires en full-text instantané, Google Cloud Storage stocke les PDFs et pièces jointes, Firebase complète l'auth et les push, Notion SDK synchronise les bases de connaissances internes. Tout ça en jobs asynchrones via Symfony Messenger + Doctrine transport, supervisé par Zenstruck Monitor.
- Gmail API · synchro emails fournisseurs
- Brevo + Mailjet · email transactionnel + campagnes
- Twilio · SMS via Symfony Notifier
- Pusher · pipelines temps réel
- Algolia · recherche annuaires instantanée
- Google Vision · OCR devis
Architecture technique
Front Next.js · Back Symfony · API Platform
Le front Next.js 16 est découpé en quatre zones : `(site)` pour la vitrine SEO + blog + courtage, `(user)` pour l'espace SaaS, `admin` pour les écrans iframés dans EasyAdmin, et `lp` pour les landings dédiées. Server Components, Turbopack, React 19, Tailwind CSS v4, Radix UI, Zustand pour les pipelines.
Le back Symfony 7.1 expose tout via API Platform 3 (REST + endpoints custom), gère le métier dans EasyAdmin, et orchestre les workers asynchrones via Messenger. PostgreSQL côté DB avec extensions PostGIS pour la cartographie. Qualité tenue par PHPStan, Rector, PHPUnit, Foundry, php-cs-fixer.
- Front Next.js 16 · 4 zones (site / user / admin / lp)
- Back Symfony 7.1 · EasyAdmin + API Platform 3
- PostgreSQL + PostGIS · données géographiques
- Workers async · Messenger + Doctrine transport
- Sentry · monitoring front + back en production
Accompagnement & évolution
Une plateforme qui s'enrichit en continu
Tonnage n'est pas un projet livré puis abandonné : on intervient en continu sur les nouvelles fonctionnalités produit (nouveaux modules métier, nouvelles couches carto, intégrations partenaires), sur l'optimisation SEO des templates programmatic, sur les tests et la stabilité, et sur l'infra (workers, sauvegardes, monitoring).
L'architecture découplée front/back est prête pour le multi-tenant et l'internationalisation — la prochaine étape produit.
Un outil métier unique sur le marché français des granulats
1 000+
pages indexables
produits × villes × départements
360+
pros accompagnés
conducteurs travaux & chargés d'études
5 fonds
de carte interactive
plan, satellite, topo, géo, litho
10+
intégrations actives
Gmail, Brevo, Twilio, Pusher…
Les outils utilisés sur ce projet
Next.js 16
App Router, Turbopack, React 19, Server Components.
Symfony 7
Backend, EasyAdmin, Messenger workers async.
API Platform
REST + endpoints exposables aux partenaires.
PostgreSQL
Base de données + extensions PostGIS pour la carto.
Leaflet
Cartographie interactive multi-couches.
Algolia
Recherche full-text annuaires.
Pusher
Événements temps réel · Kanban live.
Brevo
Email transactionnel + campagnes.
Twilio
SMS via Symfony Notifier.
Google Cloud
Storage PDFs + Vision OCR devis.
Sentry
Monitoring d'erreurs front + back.
Stripe
Paiement abonnements SaaS.
Tonnage, c'est exactement le type de projet qu'on aime : du SaaS métier exigeant, une vraie singularité produit (la carto géologique × annuaire × CRM), une stack ouverte (Next.js + Symfony + API Platform), et un accompagnement long terme avec une vraie équipe en face. Si vous portez un projet SaaS B2B niche qui demande dev, produit et acquisition coordonnés, on connaît la chanson.
Pas envie d’appeler ?
Décrivez votre projet
en 5 min.
Vous avez un projet similaire (refonte, logiciel sur-mesure, IA) ? Décrivez-le en 5 min, on revient sous 48h avec une proposition d'architecture et un chiffrage.
- 1Vous décrivez votre besoin
- 2On chiffre & argumente
- 3Devis dans votre boîte
Aucun engagement · Réponse sous 48h


