ZeusInLabs PRD Made by ZeusInLabs
Product Requirements Document

SaaS de gestion de rendez-vous pour tatoueurs

Version 1.0 — MVP
Type Multi-tenant SaaS
Stack Next.js · Stripe · PostgreSQL
Budget 3 000€
01

Contexte & Objectifs

Le client accompagne des tatoueurs et souhaite leur fournir un SaaS permettant de gérer les rendez-vous. Chaque tatoueur (client final) s'abonne au service et obtient sa page publique (type venue.ink / taap.it) où les visiteurs peuvent réserver un créneau horaire.

La fonctionnalité est proche de Calendly ou Cal.com, sans la partie appel vidéo — adaptée spécifiquement aux besoins des artistes tatoueurs.

🎨

Pages publiques

Page personnalisable pour chaque tatoueur avec services, galerie, bio et système de réservation intégré.

📅

Sync Google Calendar

Synchronisation automatique des RDV avec le calendrier Google du tatoueur via OAuth2.

💳

Paiements Stripe

Abonnements SaaS, acomptes clients et reversement aux tatoueurs via Stripe Connect.

Dashboard complet

Interface d'administration pour gérer disponibilités, réservations, clients et statistiques.

02

Utilisateurs & Rôles

👑

Administrateur

Équipe technique — Gestion globale de la plateforme, facturation, support utilisateurs et maintenance.

✒️

Tatoueur (Merchant)

Client SaaS — Crée son compte, configure sa page publique, son calendrier, ses services et reçoit les paiements via Stripe Connect.

👤

Visiteur

Client final — Consulte les pages publiques, réserve un créneau et paie un acompte si requis.

03

Périmètre Fonctionnel

Inscription & Authentification

  • Inscription / connexion tatoueur via Better Auth (email/password, social login Google/Apple, MFA possible)
  • Gestion des comptes, profils, récupération de mot de passe, vérification d'email
  • Architecture multi-tenant : chaque tatoueur a son espace isolé (données, pages, réglages)

Page Publique Personnalisée

  • URL dédiée par tatoueur (ex: monstudio.example.com/nom ou nom.plateforme.com)
  • Template minimaliste inspiré de venue.ink avec photo, bio, services, prix, galerie et bouton de réservation
  • Options de personnalisation : couleurs, logo, police, présentation des services

Prise de Rendez-vous

  • Choix du service, durée, prestataire (si plusieurs), date et heure
  • Affichage des disponibilités dynamiques (plages horaires + Google Calendar synchronisé)
  • Formulaire client : nom, email, téléphone, notes, fichier à joindre (référence tatouage)
  • Confirmation par email, option SMS prévue dans la roadmap

Paiements & Acomptes (Stripe)

  • Modèle d'abonnement SaaS : prélèvement récurrent (mensuel/annuel) via Stripe Billing
  • Acompte lors de la réservation (montant fixe ou pourcentage) via Stripe Checkout
  • Stripe Connect pour reversement vers le tatoueur avec prise en charge des frais plateforme
  • Gestion des remboursements et annulations via webhooks Stripe

Synchronisation Calendrier

  • Connexion OAuth2 du tatoueur à son Google Account
  • Création/lecture/suppression d'événements pour bloquer les créneaux réservés
  • Support multi-calendriers (optionnel en Phase 1)

Dashboard Tatoueur

  • Vue calendrier (mois/semaine/jour) avec réservations et événements Google
  • Gestion des plages de disponibilité, jours fériés, blackout periods
  • Liste des réservations avec statut et actions (confirmer/annuler/rembourser)
  • Gestion des services (titre, durée, prix, description)
  • Statistiques : nombre de réservations, CA, taux d'annulation

Notifications

  • Emails transactionnels : confirmation, rappel RDV, annulation, paiement, facture
  • Rappels automatisés configurables (J-1, J-X)
  • Webhooks pour intégration externe (Notion, Zapier — à terme)
04

Architecture Technique

Next.js (App Router)
React + TypeScript
shadcn/ui + Tailwind
Better Auth
PostgreSQL
Drizzle ORM
Stripe Connect
Google Calendar API
Resend / Postmark
MinIO (S3)
Hetzner VPS
Sentry

Exigences Non Fonctionnelles

  • Performance — Pages publiques rapides (Next.js SSR/ISR pour SEO)
  • Scalabilité — Architecture multi-tenant, PostgreSQL prévu pour montée en charge
  • Sécurité — TLS, protection CSRF/XSS, rate limiting, secrets en vault
  • Observabilité — Logs centralisés, erreurs capturées (Sentry), métriques
05

Flux Utilisateur

Inscription d'un Tatoueur

1
Inscription
Email + mot de passe ou connexion sociale
2
Vérification email
Confirmation du compte par lien unique
3
Configuration profil
Setup de la page publique et des services
4
Connexion Stripe
Onboarding Stripe Connect pour recevoir les paiements
5
Sync Calendar
OAuth Google Calendar pour importer les disponibilités

Réservation par un Visiteur

1
Sélection
Choix d'un service et d'un créneau disponible
2
Informations
Saisie des infos (nom, email, notes, référence)
3
Paiement
Règlement de l'acompte via Stripe (si activé)
4
Synchronisation
Création événement dans le Google Calendar du tatoueur
5
Confirmation
Email de confirmation envoyé au visiteur et tatoueur
06

Roadmap

Phase 0 — MVP

Fondations

Inscription, pages publiques, réservation basique, Stripe (acompte), Google Calendar sync, dashboard minimal.

Phase 1 — Amélioration

Personnalisation & Fiabilité

Personnalisation avancée de la page, rappels par email, gestion multi-calendrier, tests et optimisation.

Phase 2 — Expansion

Intégrations & Scale

Intégrations externes (Zapier), SMS reminders, multi-prestataires par studio, marketplace interne.

07

Modalités Financières

Développement Initial
3 000
Acompte au démarrage 1 500€
Solde après validation 1 500€
Corrections bugs incluses

Évolutions Futures

Les évolutions seront facturées au cas par cas selon la complexité. Exemple :

  • Module multi-prestataires (workspace partagé) → ~500€

Chaque demande fera l'objet d'un mini cahier des charges, d'une estimation précise et d'une validation avant développement.

08

Points à Valider

💰

Pricing SaaS

Définir les prix et tiers d'abonnement avec les features par niveau.

🔐

Accès Stripe

Accès au compte Stripe pour configuration des paiements et Connect.

☁️

Google Cloud

Accès à un projet Google Cloud pour OAuth et Calendar API.

09

Livrables