Skip to content

Configuration

pages.config.js is the one configuration file. It is a plain JavaScript module; the builder reads it at build time, nothing from it reaches the browser except what the pages show. Below are the two templates’ files as they are, then every key.

pages/template-www/pages.config.js:

export default {
title: 'My Landing',
// the template itself is deployed here; put your own domain
siteUrl: 'https://template-www.pages.gitt.one',
defaultPhone: '+46 00 000 00 00',
defaultEmail: 'info@example.com',
// file in images/; '' renders the title as a wordmark instead
logoImage: '',
logoImageHeight: 40,
// contact form backend and its Cloudflare Turnstile site key;
// leave both empty until the form is wired up
contactFormReceiverURL: '',
turnstileSiteKey: '',
locales: ['en'],
defaultLocale: 'en',
// one seed colour; the whole primary palette is derived from it
brandColor: '#2563eb',
// header theme: 'light' (default) or 'dark'
headerTheme: 'light',
// site menu; path is locale-relative ('' = home), cta: true = accent button
navigation: [
{ name: 'Home', path: '' },
{ name: 'Contacts', path: 'contacts', cta: true },
],
// extra footer lines (legal requisites etc.)
footerLines: [],
};

Change brandColor and rebuild: the blue of template-www.pages.gitt.one — buttons, icons, the wordmark, the gradient of the call to action — becomes your colour, with the lighter and darker shades derived to keep contrast.

KeyRequiredWhat it does
titleyesSite name: the browser tab, the wordmark in the header when there is no logo, the og:title fallback
siteUrlyesCanonical origin; drives the sitemap, canonical links and hreflang alternates
defaultPhone, defaultEmailnoShown in the header and the footer; sections may override them
logoImagenoFile name in images/. Empty string renders title as a gradient wordmark
logoImageHeightnoHeight of the logo in pixels, default 40
brandColornoOne seed colour. The whole primary palette (50…950) and an analogous accent for gradients are derived from it in OKLCH; button text shades are chosen for contrast. Omit it to keep the engine’s default palette
headerThemeno'light' (default) or 'dark'
navigationyesThe menu. path is locale-relative: '' is the home page, 'contacts' is /contacts/, '#contacts' is an anchor on the current page; an absolute URL is used as is. cta: true renders the item as the accent button. May be a map by language: { en: [...], ru: [...] }
footerLinesnoExtra lines under the footer (legal requisites). May be a map by language
locales, defaultLocalenoLanguages, see Languages. Omit both for a single-language site
contactFormReceiverURLnoWhere the contact form posts
turnstileSiteKeynoCloudflare Turnstile site key for the form’s spam challenge
fontFamilynoA family bundled in the builder ('Open Sans') — self-hosted, no external requests — or any CSS font stack of your own
fontScale, headingScalenoMultipliers for the type scale; headingScale applies to display sizes on top of fontScale
portfolioUrl, portfolioBearernoSource for the PortfolioSection (projects pulled at build time)
componentsGallerynotrue renders the component collection under /components/. Meant for the engine’s own site

pages/template-docs/pages.config.js:

export default {
title: 'My Knowledge Base',
// the template itself is deployed here; put your own domain
siteUrl: 'https://template-docs.pages.gitt.one',
description: 'Knowledge base published from a git repository',
// colour of the browser UI and of the generated site.webmanifest
themeColor: '#334155',
};
KeyRequiredWhat it does
titleyesSite name in the header and the browser tab
siteUrlyesCanonical origin for the sitemap and links
descriptionnoDefault meta description
themeColornoColour of the browser UI and of the generated site.webmanifest
logonoPath to a logo copied into the image with COPY
faviconnoRe-points the favicon link, e.g. to a .ico you copy into public/
searchnofalse removes the search box and skips the index build. On by default
locales, defaultLocalenoLanguages, see Languages