# Contexte projet — saas-maker > **Point d'entrée machine.** Un agent IA lit ce fichier en premier, puis suit les liens. > Le bloc « Snapshot » est **auto-généré** (`pnpm ai:update`) — ne l'édite pas à la main. > Le texte ci-dessous est **humain** : décris ici la vision, le but, les limitations. ## Résumé projet **saas-maker** est un monorepo « **usine à apps** » pour lancer des micro-SaaS **mobile + web** très vite. Un **socle générique** (`packages/*`) fournit auth, onboarding, paywall, notifications, emails, analytics, A/B testing — paramétrés par props. Chaque produit est une app sous `apps//{mobile,web,shared,supabase}` générée par `pnpm create-app `. - **Aujourd'hui** : une app produit, **pasdoc** (démarches administratives françaises), + **`apps/site`** (vitrine + hôte du contexte IA, → `saas-maker.com`). - **Philosophie** : améliorer le socle une fois → toutes les apps en profitent ; pouvoir A/B tester chaque écran du socle ; **0 € d'infra** tant qu'une app n'a pas décollé (stratégie *poc-hub*). - **Stack** : web = Next.js 14 (App Router) · mobile = Expo/React Native + NativeWind (mêmes classes Tailwind des deux côtés) · données = Supabase (client générique + schéma typé par app) · auth social passwordless Apple/Google · paiement RevenueCat · analytics PostHog · crashes Sentry · emails Resend. - **Conventions** = source de vérité dans [CLAUDE.md](../CLAUDE.md) ; architecture détaillée dans [ARCHITECTURE.md](../ARCHITECTURE.md). Ce dossier `.ai/` en reflète l'**état réel** (auto-généré). ## Deux systèmes de documentation (coexistent) 1. **« Documentation vivante »** (humain) — un hook git `commit-msg` (`scripts/git-hooks/commit-msg`) **bloque** tout commit touchant `packages/`/`templates/`/`scripts/`/CI sans mettre à jour un `.md` + une ligne dans le **`CHANGELOG.md` racine** (format Keep-a-Changelog). Échappatoire : `[skip-docs]`. 2. **AI Context Engine** (ce dossier `.ai/`) — générateur **déterministe** (`pnpm ai:update`) + gate CI bloquant `ai-docs` + hook `pre-push`. Cible : les **agents IA** (état machine-lisible). → Il y a donc **deux changelogs** : `CHANGELOG.md` (racine, humain, « majeur ») et [`changelog.md`](changelog.md) (ici, auto depuis les commits). Le premier résume l'intention, le second trace l'historique brut. ## Publication du contexte IA (Phase 2) `apps/site/web/scripts/sync-ai.mjs` copie ce dossier `.ai/` dans `public/` **au build** de la vitrine → servi en texte brut sur le domaine : **`/llms.txt`** (index pour agents) + **`/ai/*.md`** (bruts) + `/CLAUDE.md` · `/ARCHITECTURE.md`. Toujours frais (régénéré à chaque déploiement). ### Snapshot (auto) - **Apps** (2) : `pasdoc`, `site` - **Packages socle** (10) : `@saas-maker/analytics`, `@saas-maker/auth`, `@saas-maker/core`, `@saas-maker/email`, `@saas-maker/experiments`, `@saas-maker/notifications`, `@saas-maker/onboarding`, `@saas-maker/paywall`, `@saas-maker/supabase`, `@saas-maker/ui` - **Stack** : `@sentry/react-native@^8.17.1` · `@supabase/supabase-js@^2.44.0` · `expo@~51.0.0` · `nativewind@4.1.23` · `next@^14.2.0` · `posthog-react-native@^3.3.0` · `react-native@0.74.0` · `react-native-purchases@>=7` · `resend@^4.0.0` - **Routes API** : 3 · **Tables** : 11 · **Écrans mobiles** : 9 · **Pages web** : 8 - **Commandes** : 16 (voir architecture.md) · **Variables d'env** : 16 · **Jobs CI** : 6 · **TODO** : 6 ### Fichiers .ai - [architecture.md](architecture.md) — apps, packages, deps - [features.md](features.md) — fonctionnalités & état - [database.md](database.md) — tables & migrations - [api.md](api.md) — routes HTTP - [decisions.md](decisions.md) — décisions techniques - [changelog.md](changelog.md) — historique enrichi ### Docs humaines de référence - [../CLAUDE.md](../CLAUDE.md) — conventions que l'agent DOIT suivre - [../ARCHITECTURE.md](../ARCHITECTURE.md) — architecture détaillée, stratégie poc-hub - [../README.md](../README.md) — démarrage