Skip to content

Customize Branding, Navigation, and SEO

최규민

May 24, 20261 min read

Customize Branding, Navigation, and SEO

Customize the public site

Code-accurate customization notes

✅
The footer currently renders Home, About, Template, and any non-empty social URLs. The Template link comes from brand.templateUrl. For larger footer navigation, edit src/components/layout/Footer.tsx.
  • Dark mode uses the built-in useThemePreference hook and localStorage key theme; it does not depend on next-themes.
  • Category names in Notion must match brand.categories[].name exactly for category filtering.
  • brand.url drives canonical URLs, sitemap, RSS links, Open Graph URLs, and JSON-LD.

Most site-wide settings live in src/config/brand.ts. This file controls identity, metadata, colors, fonts, navigation, social links, assets, and optional integrations.

Site identity

typescript
name: "My Blog",
title: "Notes on building software",
description: "Long-form writing about engineering and product design.",
url: "https://example.com",
lang: "en",

Update brand.url before production. It is used by canonical links, RSS, sitemap, Open Graph, and JSON-LD metadata.

Categories

The category name in Notion must exactly match the name in brand.ts. The slug controls the URL; the name controls filtering.

typescript
categories: [
  { name: "Development", slug: "development" },
  { name: "Design", slug: "design" },
  { name: "Product", slug: "product" },
]

SEO checklist

  • Use a real production domain.
  • Provide a high-quality Open Graph image.
  • Write useful summaries for posts.
  • Keep slugs stable after publishing.