Wedding-Templates Guide · Per Noelia

Sibling repo separato da Sharkcode main. Stack diverso: React 19 + Vite 6 + Tailwind 4 + Framer Motion + pnpm + Supabase + FTP SiteGround.

Path 6 Phase 1.5 · audit Wedding-Templates repo · 23 maggio 2026

Stack tecnico REALE

Diferente del Sharkcode main repo (NON Astro + NON Sanity + NON CF Pages).

ComponenteVersionePer cosa
FrameworkReact 19 + TypeScript strictSingle-page wedding sites
BuildVite 6Dev server + build production
Package managerpnpm monorepo (NON bun)Workspace shared packages/wedding-core
CSSTailwind CSS 4 + @theme blocks per templateBrand customization per cliente
AnimationsFramer Motion 12Scroll reveal + section transitions
ScrollLenis 1.3.18Premium scroll snap smooth
FormsReact Hook Form + ZodRSVP form validation
BackendSupabaseRSVP data + auth + database
EmailResendEmail confirmations RSVP
Deploy templatesFTP SiteGroundnode tools/ftp-deploy.mjs
Deploy dashboardVercelAdmin dashboard guests management
QAVitest + Playwright + Lighthouse CIVisual regression + performance
Perché diverso da Sharkcode? Wedding-Templates è white-label product (futuro marketplace). Stack ottimizzato per single-page scroll + RSVP forms + rapid iteration per-cliente. Sharkcode main è enterprise multi-tenant (Sanity CMS + Astro multi-page).

5 Templates esistenti

Production-ready (4) + draft (1). Tutti in ~/Code/Wedding-Templates/templates/ post-clone.

maira-matteo-ita Production

Style: Elegant minimal · Target: Wedding Toscana · 7 sezioni · Live: mairaandmatteo.com

NO footer, content-first layout, Champagne Limousines + Lavonia Classy fonts, cream + olive palette.

gianluca-giulia Production

Style: Tuscan watercolor · Target: Italian couples · 9 sezioni + Contatti · Live: gianlucegiulia.com

Full @theme block con serif + script fonts, watercolor aesthetic (sage + terracotta + soft-yellow palette).

federica-lorenzo Production · ACTIVE May 2026

Style: Modern romantic · Target: Urban venues · 7-9 sezioni · Live: federica-lorenzo.com

Multi-viewport polish (macbook13/laptop/tablet/mobile scripts), emoji-to-icon migration, latest production iteration, deep client revisions applied May 2026. 70+ commits Mar-May 2026. Vedi sezione "Esempio F&L" sotto per case study completo.

promessa Active development

Style: Contiemporary light · Status: In progress · Localhost:5173

Sezioni TBD. Iterazione attiva.

elena-marco Draft

Style: Minimalist chic · Status: Draft incomplete · 6 sezioni · Not deployed

Reference draft per pattern minimalist chic. NON usar come base, è incomplete.

Workflow customizzazione cliente

Come duplicare + customizzare template per cliente nuovo Wedding. Vos decís a Claude, Claude esegue.

1. Scaffolding nuovo template

# Duplica template esistente (es. federica-lorenzo)
cp -r templates/federica-lorenzo templates/cliente-nuovo

# Update package.json (Claude lo fa)
cd templates/cliente-nuovo
# Change "name": "federica-lorenzo" → "name": "cliente-nuovo"

# Root pnpm workspace registra automáticamenteamente il nuovo template
cd ../..
pnpm install

2. File da customizzare per cliente

FileCosa contieneTu o Claude
src/styles/theme.cssTailwind @theme block: palette OKLCH + fonts + spacing + animationsClaude (tu dici "verde menta + dorado")
src/config/content.tsTutto testo cliente: nomi + data + venue + schedule + RSVPClaude + Michel review IT (verbatim CLIENT DATA HANDLING)
src/config/sections.tsQuali sezioni mostrare + ordine + nav labelsClaude (tu dici "togliere RSVP, aggiungere Gifts")
src/assets/Immagini cliente (hero + sections + logo + monogram + background)Tu Canva + Claude integration
.env.localSupabase keys per RSVP testClaude setup + Michel da credentials

3. Comandi workflow

# Dev server (port 5173-5178)
pnpm --filter cliente-nuovo dev

# Build production
pnpm --filter cliente-nuovo build

# Type check
pnpm --filter cliente-nuovo type-check

# Deploy via FTP SiteGround
node tools/ftp-deploy.mjs

# QA tools
node tools/pixel-diff.mjs  
node tools/verify-template.mjs  
node tools/self-review.mjs 
node tools/screenshot-matrix.mjs

Brand integration pattern

Tailwind @theme block (NON CSS custom properties classic). Pattern Wedding-Templates specifico.

@theme {
  --color-cream: #faf6ef;
  --color-olive: #486851;
  --color-terracotta: #c2734c;
  --font-script: 'Great Vibes', cursive;
  --font-serif: 'Cormorant Garamond', serif;
  --font-body: 'Poppins', sans-serif;
}

@font-face {
  font-family: 'Great Vibes';
  src: url('../assets/fonts/great-vibes.ttf') format('truetype');
  font-display: swap;
}

CSS Variables (per-template defaults in :root):

Images: .png source files + WebP conversion + lazy loading per section. Favicon per cliente generato via Python script (generate-favicon-fl.py). Responsive image optimization (responsive-images-lf.mjs).

NO Sanity CMS: content è hardcoded in config/content.ts. Adatto per static wedding sites; NON adatto per multi-client dashboard o editorial CMS.

Case study · Federica & Lorenzo

Template più recente production (May 2026 active iteration). 70+ commits in 3 mesi. Esempio realistic di customization scope per cliente Wedding.

Customizzazioni applicate

  1. Hero venue: "Basilica di Sant'Anselmo all'Aventino" (font clamp 3rem → 2.1rem per mobile fit)
  2. Cerimonia + Ricevimento dual venues: carousel on mobile, nested VenueSections
  3. Timeline: 4 icon frames (aperitivo, cena, torta, balli) + custom icons
  4. RSVP split: ospite + accompagnatore allergies (separate columns Supabase)
  5. Gifts section: beneficiari nome completo (whitespace-nowrap per 1-line wrap mobile)
  6. Monogram + favicon: Python image processor tools
  7. Envelop animation video: Remotion + ffmpeg
  8. Multi-viewport responsive polish: macbook13 + laptop + tablet + mobile debug scripts
  9. Color palette: warm romantic (custom terracotta + sage tones)
  10. Deep May 2026 client revisions: ortensie decorations, cena orario 20:30, Tier 2/3b responsive fixes
Lección para vos: 70+ commits in 3 mesi non è anomalia, è normale per cliente Wedding. Iterazione continua post-launch (cliente vede + chiede tweaks). Pair-mode con Michel + me Claude = ciclo 30-60 min per round feedback.

CLIENT DATA HANDLING · regola CRITICA

INCIDENT 2026-05-02: IBAN cliente trascritto errato, andato in preview production. Lesson cementata in Wedding-Templates CLAUDE.md.

Regola

Applicazione pratica per te

Quando lavori su cliente Wedding pair-mode con Michel + Claude:

  1. Cliente manda brief PDF con dati (Michel intermediate)
  2. Michel ti passa dati testuali estratti
  3. Vos decís "Claude, aggiorna il template con questi dati: [paste verbatim]"
  4. Claude scrive content.ts, poi rilegge i dati sensibili (IBAN, CF, telefono)
  5. Tu + Michel confermate "ok corretti" prima di commit + deploy

Gap vs Sharkcode main

Differenze chiave. Quando lavori Wedding-Templates recordá che NON è Sharkcode standard.

AspettoWedding-TemplatesSharkcode main
CMSNone (hardcoded content.ts)Sanity + GROQ queries
AuthSupabase anon (RSVP forms only)OAuth + role-based admin
Compile scriptsNone (no compile-*)compile-brand, compile-legal, compile-pack-2-blocchi
Brand systemPer-template @theme Tailwind blockCentralized design tokens canonical
DeployFTP SiteGround + Vercel dashboardGit + Cloudflare Pages auto-deploy
TestingVitest + Playwright visualFull E2E + unit test suite
AnalyticsNone (RSVP counts only)Counterscale + pixel tracking
i18nNone (Italian-only)Multi-language support
Package managerpnpmbun
FrameworkReact 19 + Vite 6Astro + Tailwind

Quick Start per te

Dopo setup MacBook done, primo hands-on Wedding-Templates.

# 1. Clone sibling repo
git clone <wedding-templates-url> ~/Code/Wedding-Templates
cd ~/Code/Wedding-Templates

# 2. Install dependencies
pnpm install

# 3. Copy env
cp .env.example .env
cp templates/maira-matteo-ita/.env.example templates/maira-matteo-ita/.env

# 4. Run a template dev server
pnpm dev:maira              # Opens port 5173
# o
pnpm dev:giulia             # Opens port 5177

# 5. Studio duplication workflow (esercizio Day 2-7)
# Copy federica-lorenzo/ → templates/cliente-nuovo-test/
# Edit content.ts, theme.css, assets/
# pnpm --filter cliente-nuovo-test dev

# 6. Deploy via FTP (solo quando cliente reale, NON test)
pnpm --filter cliente-nuovo build
node tools/ftp-deploy.mjs

Esercizio Day 2-7 (Future Session 3 prep)

  1. "Claude, mostrame el repo Wedding-Templates + listame los templates con descripción"
  2. "Claude, abrí federica-lorenzo en localhost para que pueda ver el sitio"
  3. "Claude, duplicá este template para cliente ficticio 'Mariposa Wedding', palette verde menta + dorado"
  4. Vos guardás localhost + decís "ok va bien" / "no, palette más cálida"
  5. Quando ok, "Claude, hacé commit y push"