Skip to content

feat: Ada Zoppi founding legend + Chanel-voice storefront - #63

Merged
SteveSimonson merged 2 commits into
mainfrom
feature/adazo-origin-brand-voice
Jul 30, 2026
Merged

feat: Ada Zoppi founding legend + Chanel-voice storefront#63
SteveSimonson merged 2 commits into
mainfrom
feature/adazo-origin-brand-voice

Conversation

@SteveSimonson

Copy link
Copy Markdown
Owner

Fixes #62

Summary

  • Adds Ada Zoppi founding legend as brand canon (docs/brand-origin.md, src/data/brand.ts)
  • Rewrites Why page as Chapter One of the house story (1726, Brianza, il libro, motto)
  • Sweeps storefront copy into a cool, decisive Chanel-like voice: treat yourself or gift her
  • Replaces Campaign / World Edit / Café Edit / Gen / Insert jargon with house series names (The Atelier, Abroad, The Wild, The Carpet, The Café)
  • Softens SEO, shop, quiz, reels, watch, product limited-time, and magazine copy
  • Keeps a single affiliate disclosure in the footer

Risk

Low — copy and label changes only. Series classifiers updated for new season strings (Abroad). Production direction notes remain in data but are no longer rendered.

Test plan

  • /why — full founding legend, motto, CTAs
  • Footer — motto mark, one affiliate line only
  • Home / Shop / Quiz — no “edit / campaign / gen” jargon
  • /vibe/* — series labels The Atelier / Abroad / Wild / Carpet / Café; no Direction block
  • /watch + /reels — films language, no Gen/Insert badges
  • Magazine flip — Abroad series still appears (classifier fix)
  • npx tsc --noEmit green

Canon origin story (Why page + docs/brand-origin.md + brand.ts),
series labels without Campaign/Edit/Gen jargon, lux destination
positioning for gift and self-treat, single footer affiliate disclosure.
@SteveSimonson

Copy link
Copy Markdown
Owner Author

Independent review — PR #63 (feature/adazo-origin-brand-voice)

Scope reviewed: full gh pr diff 63 (+ spot-checks on brand.ts, docs/brand-origin.md, Why.tsx, Vibe.tsx series kind, magazine.ts seriesOf, ReelInsertCard / Watch / Reels, Layout footer, seo.ts / seoData.ts).
Typecheck: ./node_modules/.bin/tsc --noEmitclean (exit 0).


What lands well

  • Founding canon is coherent. docs/brand-origin.md + src/data/brand.ts + /why tell the same story (Ada Zoppi, 1726, Brianza, il libro, motto IT/EN). Why page correctly drops the extra inline affiliate box.
  • Series classifiers work after the season rename.
    • campaignSeriesKind / seriesOf: Abroadworld; café / cafe → excluded from magazine (null); carpet / wild / atelier defaults hold.
    • Season inventory: 6 house · 6 Abroad · 6 Wild · 6 Carpet · 6 Café. Magazine builds 6 Abroad spreads + no café spreads.
  • Jargon scrub on the high-traffic surfaces is real. Removed/replaced Campaign / World Edit / Café Edit / Gen / insert-size badges from Watch, Reels, ReelInsertCard, magazine labels, home/shop/quiz/SEO. Direction field stays in data (production notes) and is not rendered — good.
  • Single affiliate disclosure. Only BRAND.affiliateDisclosure in Layout footer. Why no longer duplicates it.
  • No obvious content-hiding regression. Café films still route to the video-first block; carpet/abroad still show; reels still list gen1 archive under house language (“From the archive”).

Nits (should not block ship)

  1. User-facing “Commission tier” still on PDPs
    Five luxury products in src/data/products.ts still render via the Product details table:

    • { label: 'Commission tier', value: 'Luxury Beauty (~10%)' }
      Features were cleaned in this PR; specs were not. Same products also badge Luxury · ~10% and some feature lines still say “High-AOV” / “Very high AOV”; fragrance badges still say Fragrance AOV.
      Shoppers should not see affiliate math. Suggested follow-up: drop commission specs, rewrite badges to house language (Prestige, House pick), scrub AOV from features.
  2. Residual “edit” on vibe page
    Vibe.tsx: “Real edits mix personas” — tiny leftover pipeline word amid an otherwise clean series relabel.

  3. DRY / consistency (non-blocking)

    • SERIES_LABELS in brand.ts is not consumed by magazine.ts / Vibe.tsx (duplicated switch tables). Fine for now; easy consolidation later.
    • CafeEditSection / GenerationSection are internal names only — OK.
    • selectionWordForPersona(personaId, title) effectively ignores personaId — harmless dead arg.
  4. Product concept copy still production-brief tone
    Campaign concept strings remain long editorial briefs (“Full-length quiet-luxury editorial…”). Not the banned jargon list; optional polish if you want Chanel-shorter body copy later.


Checklist

Check Result
Remaining “Campaign Edit / Gen N / Insert size / commission tier / Amazon Best Sellers edit” in UI Mostly clean; commission tier + ~10% badges + AOV still on some PDPs
Abroad → world; Café excluded from magazine Pass
Unused imports / type errors tsc clean
Multiple affiliate disclosures Pass (footer only)
Regressions hiding content / breaking UX None found

Verdict

Solid brand-origin + voice pass. The only storefront leaks still in spirit of the PR are commission/AOV product metadata — copy nits, not ship blockers.

VERDICT: APPROVE_WITH_NITS

Review nits from PR #63 — prestige shelf language instead of
Associates commission tiers and AOV badges.
@SteveSimonson

Copy link
Copy Markdown
Owner Author

Addressed review nits in 54022a1:

  • Removed Commission tier / ~10% / AOV from product specs, badges, and feature bullets
  • Softened vibe “Real edits mix personas” line

CI green on both commits. Merging with APPROVE_WITH_NITS.

@SteveSimonson
SteveSimonson merged commit 0084ebe into main Jul 30, 2026
1 check passed
@SteveSimonson
SteveSimonson deleted the feature/adazo-origin-brand-voice branch July 30, 2026 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ada Zoppi founding legend + Chanel brand voice on storefront

1 participant