Back to the work

Startup Founder / 2026

Mobilit'Eirb

My startup. It measures the carbon footprint of student trips, and began as a school project I led with a team of five at ENSEIRB-MATMECA.

  • Nuxt
  • Express
  • PostgreSQL
  • Docker
mobilit.eirb.fr
Mobilit'Eirb, home screen
Demo

01Overview

Students record the trips of their mobility period abroad (a semester, an internship) and the app works out the carbon footprint of each leg. They can compare alternative routes, and the school gets aggregated data for its annual carbon report. It started as my end-of-year project at ENSEIRB-MATMECA, built by a team of five, and became my startup.

02My role

I led the project and wrote most of the commits. I set up the architecture, the Docker environment and the CI/CD pipeline, and built features across the frontend and the API.

03Architecture

Three Docker services: a Nuxt frontend served by Nginx, an Express REST API using Prisma, and PostgreSQL with PostGIS. On every push to main, GitHub Actions builds the images and pushes them to the school's registry. Sign-in goes through the school's identity provider with OpenID Connect, so the app never stores a password.

04How emissions are computed

  • Distance and duration come from the Google Routes API for road and transit, and from the haversine formula for flights.
  • Emissions come from ADEME's Impact CO2 API, which uses the official French emission factors (Base Carbone).
  • Results are stored and only recalculated when a step's endpoints or transport mode change, which keeps Google API usage within its quota.
  • Mobilities export as JSON, CSV, or a styled PDF.

05The hard parts

  • SSR inside Docker: the frontend container couldn't reach the backend at localhost, so the app moved to client-side rendering.
  • Google Routes doesn't always honour the requested transit mode. allowedTravelModes is restricted and distance checks catch absurd results.
  • A column added after deployment: queries fall back to running without it, so environments that hadn't migrated kept working.