Toutes les réalisations

Tonnage

2024 → aujourd'hui · SaaS · BTP & matériaux · Accompagnement long terme · dev + produit

Voir le site

Plateforme SaaS BTP — Tonnage

Plateforme SaaS BTP & courtage de granulats

Stratégie produitDesign UI/UXDéveloppement Next.js 16Back-office Symfony 7API PlatformCartographie LeafletSEO programmatiqueEmail & multicanalAccompagnement long terme
Plateforme Tonnage — courtier en granulats pour le BTP

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.

Contexte

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.

01

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
Parcours commande Tonnage
02

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)
03

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
Modèle tarifaire Tonnage
04

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
05

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
06

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.

Résultats

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…

Stack

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.

Conclusion

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.

Devis sous 48h

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
Décrire mon projet

Aucun engagement · Réponse sous 48h