Menu & navigation
The header navigation comes from siteConfig.navigation in src/config/site.ts. Edit the list, save the file, and the header reloads.
The shape
Section titled “The shape”navigation: { sticky: true, links: [ { label: "Features", url: "/features/" }, { label: "Pricing", url: "/pricing/" }, { label: "Customers", url: "/customers/" }, { label: "Resources", url: "/resources/" }, { label: "Blog", url: "/blog/" }, ], cta: { label: "Contact", url: "/contact/", },}| Field | What it controls |
|---|---|
sticky | If true, the header stays pinned at the top while you scroll. |
links | The desktop nav links and the mobile drawer entries — same list. |
cta | The highlighted button on the right of the header. Optional. |
Common changes
Section titled “Common changes”Rename a link
Section titled “Rename a link”{ label: "Features", url: "/features/" },// →{ label: "Product", url: "/features/" },Add a link
Section titled “Add a link”Append to the array:
links: [ // …existing links… { label: "Changelog", url: "/changelog/" },],The desktop nav and the mobile drawer both pick it up.
Remove the header CTA
Section titled “Remove the header CTA”Delete or comment out the cta block:
navigation: { sticky: true, links: [/* … */], // cta: { label: "Contact", url: "/contact/" },}Link to a page section
Section titled “Link to a page section”Use a hash:
{ label: "Pricing", url: "/#pricing" },This jumps to <section id="pricing"> on the home page — useful for single-page variants of the theme.
External links
Section titled “External links”Just use a full URL:
{ label: "Docs", url: "https://docs.example.com" },External links open in the same tab by default. If you want them in a new tab, edit src/components/Header.astro and add target="_blank" rel="noopener" on the <a> element rendering link.url.
menu.json (legacy)
Section titled “menu.json (legacy)”Some themes also ship src/config/menu.json:
{ "main": [ { "label": "Features", "url": "/features/" }, { "label": "Pricing", "url": "/pricing/" } ], "cta": { "label": "Contact", "url": "/contact/" }}Same data as siteConfig.navigation, kept in JSON so a non-developer can edit it without touching TypeScript. Whichever your theme’s Header.astro imports is the source of truth — if both files exist, you can delete the one you’re not using.
What’s next
Section titled “What’s next”- Social links — the icons in your footer and contact section.
- SEO & OG image — page titles, descriptions, the share image.
- Customize → Pages — add a new page that the menu can link to.