Work / Since 2020 · lenouvelendroit.fus.ee ↗

L'endroit Reims

Booking app for a private coaching studio.

Client
L'endroit, a one-on-one coaching gym in Reims, France
Years
Since 2020
Role
Build only
Development, hosting and ongoing changes, from Figma mockups
Stack
Vue 3, Vite, Firebase (Firestore, Auth, Storage, Cloud Functions, Hosting), Stripe, PWA. WordPress for the marketing site.

The problem

Members book private sessions with a named coach, and the studio sells session credits and products. Coaches need a live view of their day, and the studio needs each member's history in one place. Before the app, booking was done on paper.

What we built

  • Member app: book and cancel sessions, see what's coming up, browse the shop, get notifications. A cancellation is written in a single transaction, so the member's history and the coach's calendar never disagree.
  • Coach and admin app: live day calendars per coach, member files with comments and session history, orders, payment-default handling, surveys, notifications, an activity log.
  • Instalment payments through Stripe, push notifications and a sign-in log, run by Cloud Functions in the EU region.
  • The marketing site, launched in 2020 and being rebuilt in 2026.

Where it stands

The member app opened in October 2021. Members book through it, and the studio's four coaches work from its calendars.

How it runs

Changes come from the studio's feedback rounds ("recettes") and Figma mockups. Each round is recorded in a dated changelog: 38 so far, the latest on 9 October 2026.

Each client gets an app for customers and one for staff, on one backend

Customer appBook sessions, pay, shopL'endroit members
Staff and admin appCalendars, member files, orders, reportsL'endroit coaches
Shared backend: one Firebase project per clientFirestore · Auth · Storage · Cloud Functions · Messaging · HostingPush notifications, scheduled jobs, PDF and CSV exports
StripeInstalment payments (L'endroit)

Reusing the pattern is why a new client app starts from tested parts.

Have a project, or a role to fill?

Write a few lines about it. Kevin answers himself, in English or French.

Please text before calling: too many spam calls get through.