Case study
The business copilot for professional photographers.
A B2B SaaS that runs a professional photographer’s entire business — booking, client galleries, compliant quotes/invoices, payments and automations — replacing a patchwork of tools with one integrated product.
- Role
- Design · Product · Development · Hosting
- End to end, leading the dev team
- Year
- 2026
- Type
- B2B SaaS · Pro photographers

The challenge
An independent photographer juggles bookings, emails, payments, galleries, invoicing and follow-ups — scattered across Pixieset, Studio Ninja, Mailchimp and Excel. The result: mental load, wasted time, late payments and undervalued work.
The goal: replace that patchwork with a turnkey, fluid, profitable system — without asking the photographer to become an administrator.
The solution: an all-in-one system
Eight connected modules cover the full journey, from booking to getting paid.
Booking funnel
Public booking page, multi-service.
Synced calendar
Sessions and availability, Google Calendar sync.
Private client galleries
Secure photo delivery, two gallery modes.
Selection & approval
Clients pick and approve their photos online.
Quotes, contracts & invoices
FR-compliant (URSSAF/DGFIP), e-signature.
Stripe Connect payments
Secure, automatic collection.
Upsells & prints
Print orders and add-on options.
Business dashboard
Revenue, KPIs and performance tracking.
The product
A premium, clear, structured interface — built for pros who run their money.



The design
A “navy + gold + soft white” design system: premium, structured, serious. Lots of whitespace, crisp cards, tabular figures everywhere, a gold focus ring. Built to earn the trust of a pro managing their money.
Navy
#0F172A
Authority
Gold
#C8B27A
Premium
Soft white
#F8F9FB
Breathing room
Ink
#1E293B
Text
Aa
Poppins
Headings — personality
Aa
Manrope
Interface — readability
Under the hood
A pragmatic but rigorous Next.js monolith: fully typed, validated, observable, tested and continuously deployed. No over-engineering — clean boundaries where they matter.
Architecture
Modular Next.js monolith (App Router, ~96 pages / 157 API routes) with route groups separating marketing site, client area and photographer app. Composable middleware pipeline (auth, errors, rate-limit), a dedicated business service layer, and hexagonal architecture for storage: an IStorageService port + Backblaze B2 / Google Drive / S3 adapters.
Observability & guardrails
Structured JSON logging (Winston) ready for an aggregator, with automatic sensitive-data redaction (GDPR) and a per-request id for tracing. Centralized errors, strict env-var validation, resilient DB access (Prisma singleton + retry) and a boot guard (refuses to start with a live Stripe key in CI).
FR accounting & GDPR compliance
Atomic numbering, SHA256 invoice hashing, FEC export, 10-year retention — “URSSAF/DGFIP compliant”. GDPR by design: controlled delete cascades, photo-culling AI without face clustering.
Payments & storage
Stripe Connect Express (one account per photographer) + webhooks, photos on Backblaze B2 (expiring signed URLs), documents and invoices on Google Drive.
Scheduled automations
Netlify scheduled functions (marketing-automation matcher + executor), with their cron schedules versioned in code alongside the handlers.
Hosting & continuous delivery
Netlify deployment (Next.js plugin), canonical-redirect edge function, domain canonicalisation (.fr → .com, www → apex), strict TypeScript, 121+ tests (Vitest + Playwright), GitHub Actions CI on every PR.
My role: piloting end to end
From the first mockup to production: I framed and led this product on every front, managing a team of 3 on development — my apprentice Hoang, my intern Michael and my employee Smail.
Design & design system
Identity, UI, components, “Sp” tokens.
Product & scoping (PO)
Personas, value proposition, roadmap, ADRs.
Full-stack development
Frontend, API, database, tests, CI — leading the dev team (3 people).
Hosting & compliance
Deployment, infra, FR legal & GDPR compliance.
Shooting Pilot is proof that I can carry a product end to end — frame the need, design the experience, write the code, ensure compliance and ship it. That complete perspective is exactly what I bring when I recruit tech profiles.