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.