← All projects

AI roof analysis for the building trades

Birdia

An AI platform that analyzes roofs from high-definition imagery, built into B-Partners' business-management suite for tradespeople and craftsmen.

Year
2022 — Present
Role
Frontend Engineer

The problem

Roofers and building craftsmen spend a lot of unbilled time before a job ever starts — climbing ladders to measure roof surfaces, scoping the work, and turning that into a quote, often with a stack of disconnected tools for prospecting, invoicing, and accounting.

B-Partners set out to consolidate that work into a single platform for independent tradespeople, and Birdia is the AI layer that removes the most tedious part: measuring a roof.

The solution

Birdia ("l'IA qui analyse vos toitures sur images HD") lets a professional outline a roof on high-definition imagery and get usable surface measurements without setting foot on a ladder, then turn those measurements straight into a quote.

It lives inside the B-Partners dashboard, where the same user manages prospects, customers, invoicing, and accounting — so the path from "found a lead" to "sent a quote" stays in one place.

Architecture & my role

The web app is a React + TypeScript single-page dashboard built on react-admin (enterprise RBAC, navigation, and form layouts) with MUI, bundled by Vite and talking to a Java backend through a generated TypeScript client. Server state runs through React Query, local state through Zustand, and forms through React Hook Form + Zod. Roof geometry is rendered in 3D with Three.js / react-three-fiber, documents like quotes and invoices are produced with react-pdf, analytics use Recharts, and the app is monitored with Sentry and covered by Cypress end-to-end tests.

I built roughly 80% of this dashboard and about half of the public landing page (birdia.fr), working as a frontend engineer across the feature set — from the prospecting and invoicing modules to the roof-analysis UI.

Tech stack

  • React
  • TypeScript
  • react-admin
  • MUI
  • Vite
  • React Query
  • Zustand
  • Three.js
  • AWS Amplify
  • Cypress

Key learnings

  • Working in a large react-admin enterprise codebase taught me to lean on its data-provider and RBAC abstractions instead of fighting them — and to recognize where it pays to drop down to custom MUI components.
  • Rendering roof geometry in 3D in the browser meant treating performance as a feature: keeping the canvas responsive while a data-heavy dashboard stays interactive around it.
  • Owning features end-to-end across a Java API, a generated TypeScript client, and Cypress coverage showed me how much velocity comes from typed contracts and tests you can trust.