com um clique
marketing-pages
// Use when creating, updating, editing, or deleting marketing/public pages in the Resend codebase. Covers page structure, component reuse rules, and the distinction between public and product design systems.
// Use when creating, updating, editing, or deleting marketing/public pages in the Resend codebase. Covers page structure, component reuse rules, and the distinction between public and product design systems.
Use when needing Resend design resources. Routes to brand guidelines, visual identity, UI components, design tokens, and marketing page patterns.
Audit the Resend dashboard for design system alignment. Routes here when a user says "audit design", "design alignment", "dashboard design audit", or when triggered by the scheduled weekly routine.
Use when building or modifying UI in the Resend codebase. Provides component APIs, variant options, design tokens, and composition patterns for all src/ui/ primitives.
Use when creating Resend marketing materials, documents, presentations, or visual content. Triggers for Resend brand, Resend style, or Resend visual identity requests.
| name | marketing-pages |
| description | Use when creating, updating, editing, or deleting marketing/public pages in the Resend codebase. Covers page structure, component reuse rules, and the distinction between public and product design systems. |
Marketing pages live in src/app/(website)/. Product pages live in src/app/(dashboard)/. This skill covers the (website) route group only.
Before writing any component, search for an existing one. The codebase has two separate component systems — never mix them.
| System | Path | Use for |
|---|---|---|
| Product UI | src/ui/ | Dashboard/authenticated pages only |
| Public primitives | src/website/ | Marketing pages typography, buttons |
| Public compositions | src/components/website/ | Marketing feature sections |
| Page structure | src/components/public-page.tsx | Every marketing page layout |
Every marketing page must follow this composition:
import * as PublicPage from '@/components/public-page';
export default function MyPage() {
return (
<>
<script type="application/ld+json" ... /> {/* SEO JSON-LD */}
<PublicPage.Root>
<PublicPage.Header />
<MyPageHero /> {/* or PublicPage.Hero */}
<PublicPage.Container>
{/* feature sections */}
<CallToAction />
</PublicPage.Container>
<PublicPage.Footer />
</PublicPage.Root>
</>
);
}
src/website/)Use these instead of src/ui/ equivalents on marketing pages:
PublicHeading — sizes 1–6, colors: white | gradientPublicText — sizes 1–5, colors: white | gray | gradient, weights: normal | medium | semibold | boldPublicButton — appearances: white (default) | black | black-fade | fade | red; sizes: 2 | 3 | 4; supports asChild, iconLeft, iconRightPublicPage.accordion — accordion sectionsPublicPage.avatar — avatar componentsSee references/components.md for full APIs and src/components/website/ inventory.
export const metadata: Metadata = {
alternates: { canonical: '/your-path' },
title: 'Page Title · Resend',
description: '...',
openGraph: { images: [{ url: '/static/cover-image.jpg' }] },
};
Always add JSON-LD structured data using getCompanyJsonLd() from @/utils/json-ld and getBaseUrl() from @/utils/base-url.
src/app/(website)/your-page/page.tsxPublicPage.Root/Header/Container/Footer structuresrc/components/product-pages/your-page/ or reuse from src/components/website/metadata export and JSON-LD scriptsrc/components/public-page.tsx if neededsrc/app/(website)/your-page/ directorysrc/components/product-pages/your-page/ if page-specificnext.config.ts if the URL was publicsrc/styles/website.css (loaded via (website)/layout.tsx)src/ui/ classes may conflict — always prefer src/website/ primitivesreferences/components.md — Full component inventory with props and import paths