Skip to content
New: Customize your theme with an AI assistant. Read the guide

Config Reference

File: src/config/config.toml · Skill level: Beginner

config.toml holds every site-wide setting. It is grouped into tables: a line in [brackets] starts a table, and every key = value line below it belongs to that table until the next one. The file has a comment beside most keys; this page explains them in one place.

Site Identity

Table: [site]

KeyWhat it does
titleSite name, used in page titles, social previews, and structured data
descriptionDefault description for search results and social previews
taglineAdded after page titles (“Pricing - your tagline”). Ships empty, which uses common.tagline from src/i18n/<language>.json, so each language has its own. A page turns it off with disableTagline: true
taglineSeparatorText between title and tagline. Empty uses " - "
baseUrlYour live address, for example "https://www.example.com". Ships empty. Used for canonical links, the sitemap, robots.txt, RSS feeds, llms.txt, Open Graph URLs, and structured data. A SITE_URL environment variable on the build wins over it
logoMain logo, for light backgrounds
logoLightLogo for dark footers
logoAlternateLogo shown on transparent headers over images
logoTextText next to the logo. Empty shows the image only
logoWidth, logoHeightLogo size, for example "30px"
trailingSlashtrue makes every URL end with / (/pricing/). Restart the dev server after changing it
[site.favicon] imageSource image for npm run generate-favicons. Leave path as it is

Details: Site Identity & Logo.

Search Engines And AI Files

Tables: [seo], [seo.ai], [seo.robotsTxt], [seo.sitemap]

KeyWhat it does
authorDefault author meta tag, and the organization name in structured data
keywordsDefault keywords for pages without their own keywords
robotsDefault robots meta tag ("index, follow")
[seo.ai] llmsTxtBuilds /llms.txt and /llms-full.txt, one per language
[seo.ai] markdownPagesBuilds a Markdown copy of posts, solutions, industries, projects, roles, profiles, the FAQ, and legal pages at <page>.md
[seo.robotsTxt] enableBuilds /robots.txt
[seo.robotsTxt] disallowPaths crawlers must skip, for example ["/landing/"]
[seo.sitemap] enableBuilds /sitemap-index.xml (only when baseUrl is set)
[seo.sitemap] excludeFolder names to leave out of the sitemap

Details: SEO & AI Visibility.

General Settings

Table: [settings]

KeyWhat it does
blogFolder, portfolioFolder, testimonialFolder, careersFolderFolder names of the collections, which are also their URLs. Keep them as they are: renaming one also means renaming the content and route folders and editing src/content.config.ts and the routes that read the collection
paginationItems per page on the blog category and tag pages (/blog/category/<name>/page/2/) and the portfolio lists; /blog/ itself shows 10 per page
stickyHeaderThe main navigation bar sticks to the top while scrolling up and hides while scrolling down. Top bars always scroll away
contactFormActionWhere the contact forms send messages. Ships empty, so no form sends anything until you set it
contactFormProvider"formsubmit.co" (default), "formspree", or "netlify"
footerDescriptionFooter description. Empty uses footer.description from src/i18n/<language>.json
companyDeskThe file or page linked as Company Desk in the footer ("/company-desk.pdf", a file in public/)

Details: Forms.

Motion

Tables: [settings.headingAnimation], [settings.animatedNumbers], [settings.smoothScroll], [settings.cursor]

KeyWhat it does
[settings.headingAnimation] enableReveals headings as they scroll into view
style"chars" (letters slide in), "words" (word by word), or "fade"
duration, staggerSeconds per word or heading, and seconds between words ("words" only)
selector, excludeWhich headings animate, and which are skipped
[settings.animatedNumbers] enable, durationCount-up animation for statistics such as “98%” or “250+”
[settings.smoothScroll]Smooth scrolling (Lenis): enable, respectReducedMotion, duration, wheelMultiplier, keyboardShortcuts, keyboardDuration
[settings.cursor]The circle that follows the mouse: enable, size, hoverSize, opacity, borderWidth, followRatio

Details: Animations.

Table: [settings.copyright]

enable shows the copyright line in every footer. text overrides footer.copyright from the i18n files; leave it empty on a multilingual site.

Table: [settings.subscription]

KeyWhat it does
enableShows the newsletter form in the homepage and corporate footers. It stays disabled until formAction is set
title, noteOverride the form’s title and note. Empty uses footer-newsletter-grid.md (homepage footer) or the i18n subscription text
formActionYour Mailchimp form URL
mailchimpTagValueOptional numeric Mailchimp tag ID, sent as the hidden tags field

The newsletter section used on inner pages has its own settings in src/content/sections/english/newsletter.md. See Forms.

Table: [settings.cookieConsent]

KeyWhat it does
enableShows the cookie banner and holds consent-gated scripts until visitors choose
revisionRaise it by 1 when your cookie use changes, to ask every visitor again

Details: Cookies & Analytics.

Languages

Table: [settings.multilingual]

KeyWhat it does
enablefalse builds only the default language
defaultLanguageLanguage served without a prefix ("en")
disableLanguagesLanguages to skip, for example ["fr"]
showDefaultLangInUrltrue adds the prefix to the default language too (/en/pricing/)

Details: Internationalization.

Contact Details

Table: [settings.contactInfo]

phone, email, address, hours, and mapLink, used by the footers and the contact drawer. phone and email are Markdown links, so you can write "[[email protected]](mailto:[email protected])". address accepts <br /> for a line break. The shipped values are demo data.

Tables: [settings.headerOffcanvas], [settings.headerTopBar], [settings.officeDropdown], [settings.headerActions], [settings.navigationButton]

SettingWhat it does
[settings.headerOffcanvas]The contact drawer opened from the header: enable, logo, description, and a button
[settings.headerTopBar]The strip above the menu: enable, email, phone, address, hours, the show… switches, a highlighted link, and the style per header (layouts)
[settings.officeDropdown]The Our office list in the top bar: enable, label, and offices (name, flag, url)
[settings.headerActions] exploreUrlThe search button’s destination. Empty hides search; "/search/" uses the included search page
[settings.headerActions] exploreLabelThe search button text. Empty uses the translated label
[settings.headerActions] enableOffcanvasShows the drawer toggle. Both this and [settings.headerOffcanvas] enable must be true
[settings.navigationButton]The button at the right of the header: enable, label, url

Details: Header.

Table Of Contents

Social Previews

Table: [opengraph]

KeyWhat it does
imageShared preview image (/images/og-image.jpg, in public/), used when a page has no image
ogLocale, ogTypeOpen Graph locale and type
twitter, twitterCardX (Twitter) handle and card type

Custom Head Scripts

Table: [head]

content is pasted into the <head> of every page. Use it for analytics, verification tags, or extra stylesheets. With the cookie banner on, mark tracking scripts so they wait for consent: see Cookies & Analytics.

Type something to search...