marketing-pages

Use when creating, updating, editing, or deleting marketing/public pages in the Resend codebase. Covers page structure, component reuse rules, and the…

npx skills add https://github.com/resend/design-skills --skill marketing-pages

Scope

Marketing pages live in src/app/(website)/. Product pages live in src/app/(dashboard)/. This skill covers the (website) route group only.

Critical Rule: Always Reuse, Never Create

Before writing any component, search for an existing one. The codebase has two separate component systems — never mix them.

SystemPathUse for
Product UIsrc/ui/Dashboard/authenticated pages only
Public primitivessrc/website/Marketing pages typography, buttons
Public compositionssrc/components/website/Marketing feature sections
Page structuresrc/components/public-page.tsxEvery marketing page layout

Page Structure (required pattern)

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>
    </>
  );
}

Public Primitives (src/website/)

Use these instead of src/ui/ equivalents on marketing pages:

  • PublicHeading — sizes 1–6, colors: white | gradient
  • PublicText — sizes 1–5, colors: white | gray | gradient, weights: normal | medium | semibold | bold
  • PublicButton — appearances: white (default) | black | black-fade | fade | red; sizes: 2 | 3 | 4; supports asChild, iconLeft, iconRight
  • PublicPage.accordion — accordion sections
  • PublicPage.avatar — avatar components

See references/components.md for full APIs and src/components/website/ inventory.

Metadata & SEO (required for new pages)

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.

Adding a New Marketing Page

  1. Create src/app/(website)/your-page/page.tsx
  2. Use PublicPage.Root/Header/Container/Footer structure
  3. Create page-specific sections in src/components/product-pages/your-page/ or reuse from src/components/website/
  4. Add metadata export and JSON-LD script
  5. Update footer links in src/components/public-page.tsx if needed

Deleting a Marketing Page

  1. Remove src/app/(website)/your-page/ directory
  2. Remove related components in src/components/product-pages/your-page/ if page-specific
  3. Remove footer/nav links referencing the page
  4. Add redirect in next.config.ts if the URL was public

Styling Notes

  • Marketing pages use src/styles/website.css (loaded via (website)/layout.tsx)
  • Theme is forced dark — do not use light-mode-only classes
  • Use Tailwind v4 utilities; avoid inline styles
  • src/ui/ classes may conflict — always prefer src/website/ primitives

References

  • references/components.md — Full component inventory with props and import paths

More skills from resend

design-audit
resend
Audit the Resend dashboard for design system alignment. Routes here when a user says "audit design", "design alignment", "dashboard design audit", asks about…
official
resend-inbound
resend
resend-inbound — an installable skill for AI agents, published by resend/resend-skills.
official
email-best-practices
resend
Comprehensive guidance for building deliverable, compliant, and user-friendly email systems. Covers authentication setup (SPF/DKIM/DMARC), spam troubleshooting, and deliverability best practices to prevent emails from landing in spam Includes templates and patterns for transactional emails (password resets, OTPs, confirmations) and marketing emails with proper consent workflows Provides compliance frameworks for CAN-SPAM, GDPR, and CASL regulations, plus double opt-in and suppression list...
official
send-email
resend
Transactional and bulk email delivery via Resend API with single or batch endpoints. Choose single endpoint for individual emails with attachments or scheduling; use batch endpoint for 2–100 distinct emails in one request to reduce API calls Implement idempotency keys ( <event-type>/<entity-id> format) to prevent duplicate sends on retries, with 24-hour expiration Retry only 429 (rate limit) and 500 (server error) responses using exponential backoff; fix 400/422 validation errors without...
official
templates
resend
Use when creating, updating, publishing, deleting, or listing Resend email templates via the API, or when defining template variables, understanding draft vs…
official
resend-brand
resend
Use when creating Resend marketing materials, documents, presentations, or visual content. Triggers for Resend brand, Resend style, or Resend visual identity…
official
resend-design-skills
resend
Use when needing Resend design resources. Routes to brand guidelines, visual identity, UI components, design tokens, and marketing page patterns.
official
resend-design-system
resend
Use when building or modifying UI in the Resend codebase. Provides component APIs, variant options, design tokens, composition patterns for all src/ui/…
official