Skip to Content
Stack & montage

03 — Stack & montage A → Z

La stack technique réelle, l’outillage posé au démarrage, et la checklist de bout en bout. Référence stack = Naka (projet le plus à jour) — toujours relire le package.json du projet le plus récent, ne pas écrire la stack de mémoire.

1. Stack technique (dépendances — référence Naka)

BriqueVersionRôle
Next.js16.2.xFramework (App Router, RSC). ⚠️ Next 16 = breaking changes vs training data → lire node_modules/next/dist/docs/ avant de coder (cf. AGENTS.md).
React19.2.xUI
TypeScript5Typage strict
Tailwind CSSv4 (+ @tailwindcss/postcss)Styles. Tokens via @theme. Zéro hex en composant. Pièges v4 → 01-methode-design §5.
GSAP3.15 + @gsap/react 2.1Animations. useGSAP(), ScrollTrigger pour reveals/scrub.
Lenis (optionnel)1.3Smooth scroll — PAS par défaut. Ajouté au cas par cas (cool sur Naka, pas universel). Si utilisé : tout overlay scrollable → data-lenis-prevent + overscroll-contain.
next/font(Next)Polices self-hostées. ⚠️ police CJK = bloat (~1100 @font-face) → self-host le subset latin via Fontsource + next/font/local.
Playwright1.60 (dev)Scripts internes : QA/Lighthouse + mesures. (≠ le Playwright MCP du §2)
agentation3.0 (dev)Feedback visuel d’Adrien (clic → output structuré).
Node≥ 20Runtime build (pin via .nvmrc + engines).
Scriptsdev/build/start/lint/qaqa = passe pré-handoff (scripts/qa.mjs).

Ajoutés plus tard (pas au scaffold) : Sanity (au gel structure + contenu) ; formulaires tiers (Brevo/Formspree). Détail → 08 et 04.

Export statique : output: 'export'. Pré-requis = aucun SSR/server action/ISR runtime. Sinon → host Node (Vercel).

2. Outillage posé au scaffold (kit de base, d’office)

Au-delà des libs (§1), on câble d’office — c’est la mise en place, pas une re-liste de deps :

  1. Playwright MCP (chromium, scope user) — contrôle navigateur pour disséquer les réfs (distinct du npm playwright de §1). Déjà en scope user (persiste partout). --browser chromium obligatoire (Adrien = Brave).
  2. agentation montée — wrapper client dans layout.tsx, masqué en prod.
  3. GridOverlay (dev only) — 12 colonnes numérotées par-dessus tout, toggle touche G. Charte-agnostique.
  4. Toolkit __songe (scripts/dissect.browser.js) — topology()/dissect()/snap()/fold(). Marche sur la réf ET le local.
  5. Page /lab (dev only, noindex) — réunit tout le kit UI du futur site (boutons, échelle typo, cards, eyebrow, blocs types). On l’expérimente là → base validée réutilisée sur l’ensemble du site. À monter en début de build.
  6. Routine QA npm run qa — avant « tu peux rafraîchir » : tsc + charte-lint (bouton ad hoc, letter-spacing positif, PNG) + scan placeholders/TODO copy + calage grille & fold.
  7. Fondation : tokens charte + PRODUCT.md/DESIGN.md ; baseline maintenance (.nvmrc, engines, dependabot.yml, MAINTENANCE.md09).

3. Skills par moment

MomentSkills
Shape visuelimpeccable shape, frontend-design, MCP magic, imagegen-frontend-web
Réf à clonersonge-clone-reference (réflexe dès qu’une URL/template est donnée)
Build foundationvercel-react-best-practices, tailwind, design-system
Polishimpeccable live, make-interfaces-feel-better
Animationgsap, waapi, lottie, three
Copycopywriting, ogilvy-copywriting, stop-slop, humanizer
Avant livraison/security-pass, seo-audit

4. Stack par type de projet

TypeStack
Vitrine / brand éditorial (le standard)Next.js export statique + Sanity + Cloudflare Pages + GSAP/WAAPI (+ Lenis si smooth scroll voulu)
Portfolio artiste low-costNext.js static + Sanity + o2switch
Landing one-page multilingueAstro + TS + i18n
App / dashboard / SaaSNext.js + Supabase + Tailwind (+ shadcn via MCP magic)

(Webflow = héritage situationnel, plus le défaut : on construit en code.)

5. Checklist de montage A → Z

  1. Arborescence (octopus.do) : construire le sitemap, le montrer et le faire VALIDER par le client. C’est la 1re étape — elle fige les pages (ajustements à ce moment) et fournit une première copy client sur laquelle s’appuyer. On ne lance le build du projet entier qu’une fois l’arbo validée.
  2. Cadrage : charte chargée, dissection des réfs (songe-clone-reference), test plateforme, shape + mockups validés (3 versions d’UI si moyenne/faible → 01 §2/§7).
  3. Scaffold : kit §2, globals.css tokens @theme, next/font, AGENTS.md, page /lab.
  4. Build design en code : sections = composants partagés, bouton canonique, triplet eyebrow/titre, hero in-fold, reveals. (Méthode → 01.)
  5. Copy : part de l’arbo validée (étape 1), enrichie — Notion (copy only) ou écrite par nous (skills). Rien en « TODO ». (→ 04.)
  6. Pages internes : route group, templates factorisés, generateStaticParams/Metadata.
  7. a11y / SEO / perf : focus-visible, JSON-LD, sitemap, noindex (gate), images optimisées, Lighthouse via qa. (→ 05, 06.)
  8. Sécurité : /security-pass. (→ 07.)
  9. CMS Sanity (au gel) : Adrien crée le projet, scaffold schémas/GROQ/Studio, dataset EU, webhook rebuild. (→ 08.)
  10. Formulaires : Brevo/Formspree + anti-bot. (→ 04.)
  11. Hébergement : Cloudflare Pages (compte client, Songe membre, Git auto-deploy). (→ 08.)
  12. Propriété : comptes client (email de rôle), Songe garde repo + accès push. (→ 08.)
  13. Mise en prod : NEXT_PUBLIC_INDEX=on, 301 depuis l’ancien site, smoke test.
  14. Passation : doc + MAINTENANCE.md + mini-formation Sanity + creds remis. (→ 08, 09.)
Last updated on