7 / 16
Detailing.fr CMS

Every professional who signs up on Detailing.fr gets a website on their own subdomain and a back office to run it without writing a line of code. All these sites run on the same code and the same database. I designed the architecture, built the CMS and set up the way it ships, version after version.
- versions shipped
- 78
- admin screens
- 45
- database for every site
- 1
- lines of code (approx.)
- 78 k
One database, hundreds of sites
It uses a shared-database model: every content table carries a tenant ID, and Postgres security rules (Row Level Security) make sure one site never reads another's data. Each site is a build of the same code, with its ID injected at build time, then uploaded to its subdomain.
Everything a detailer can manage
Blog with a rich editor (Tiptap), editorial calendar and version history.
AI article generation and rewriting, plugged into the Do Corp engine.
Services, price lists, before/after gallery, media library.
Online booking: availability calendar, time slots, vehicle types, cancellation by link.
Form builder (conditional fields), contact requests and CSV export.
Popup builder, newsletter, link page, Google reviews with moderation.
Visibility console: views, clicks and sources, fed by the directory and the site.
Paid plugin marketplace (Stripe) and a guided tour on first login.
Updates, WordPress-style
Every site knows its version. An “Updates” page lists what's new and applies the required SQL migrations, without touching the professional's content.
Shipping without breaking: my method
With dozens of live sites on the same code, every release matters. So I set a simple rule: one version = one task shipped to production.
Local: fix, bump the version number and the changelog, test.
Beta: deploy to a staging server and test in real conditions. Until it passes, it stays on the same version.
Production: a single commit per version on the main branch, then deploy.
The changelog is shown in every pro's back office.
The main branch only holds shipped versions: its history is the product's changelog.
Tools
React · Vite · TypeScript · Supabase · PostgreSQL · Tiptap · Stripe · Framer Motion · Recharts · dnd-kit
Links
Credits
- Role
- Architecture, development & continuous delivery
- Timeline
- January → July 2026
- Client
- Formation Detailing




