Files
ComfyUI_frontend/apps
Glary-Bot 7bd99ee98c feat(website): draft Affiliate Program landing page at /affiliates
Conversion-oriented English landing page that drives applications to the
Comfy Affiliate Program Google Form. Page is shipped behind noindex while
copy and assets are still being finalized; a follow-up PR will flip it
indexable and add the zh-CN locale.

Sections (in order): hero, trust band, how-it-works, who-we're-looking-for,
program details, brand assets, FAQ, footer CTA. Mirrors the type scale,
brand tokens, and noindex/sitemap/robots conventions used by the
/affiliates/terms PR (#11954) so the two pages feel like a set.

- Copy lives under `affiliate-landing.*` in src/i18n/translations.ts
  (en only; zh-CN values mirror en until a localized version lands).
- Reuses common/FAQSection, common/BrandButton, common/SectionHeader,
  common/SectionLabel verbatim. Sections without a clean primitive fit
  (split hero, trust band, 3-step flow, audience list, details table,
  brand-asset grid, footer CTA) render inline with brand tokens rather
  than forking new shared components.
- Brand-assets grid wired via a config object in
  components/affiliates/brandAssets.ts so 728x90 / 300x250 / 160x600 /
  1200x628 banners can be dropped in without code changes.
- FAQ emits FAQPage JSON-LD (schema.org) so the page is structured-data
  ready when noindex flips off.
- Adds /affiliates to NOINDEX_PATHNAMES (excluded from sitemap), to
  robots.txt Disallow under every UA block (including AI-bot overrides),
  and renders `<meta name="robots" content="noindex, nofollow">`.
- Adds `rel` prop to common/BrandButton.vue so external CTAs can pass
  rel="noopener noreferrer" alongside target="_blank".
- Vitest unit test asserts i18n key structure (no internal-only keys,
  ordered sections, every indexed item has a translation).
- Playwright e2e covers desktop+mobile render/visibility under @smoke,
  CTA click and FAQ toggle interactions, FAQPage JSON-LD presence,
  responsive table-to-definition-list collapse.
2026-05-06 01:44:59 +00:00
..