Skip to content

Configuration

src/config/site.ts holds settings: who you are, where links go and how the theme behaves. Words people read (navigation labels, button text, page copy) are not here; they live in the language dictionaries, so each language can word them differently.

Setting Example Used for
name 'Swift' Wordmark, page titles (Services | Swift), structured data
legalName 'Swift Studio Ltd' Footer copyright, JobPosting and Organization data
url 'https://swiftagency.lesscodex.dev' Canonical URLs, sitemap, social cards. Set this before you deploy.
email 'hello@swiftagency.example' Contact page (with a copy button), footer, structured data
phone '+44 20 7946 0381' Contact page, services structured data
address { street, city, postcode, country } Contact page, footer, PostalAddress data
founded 2016 Studio page and Organization data
social [{ label, href }] Footer links, sameAs in structured data

currency is an ISO 4217 code such as 'GBP', 'EUR', 'USD' or 'IDR'. Prices on the services page are formatted with Intl.NumberFormat in each page’s language, so 18000 shows as £18,000 in English and 18.000 £ in German. The amounts themselves are in the dictionaries, under services.packages.

src/config/site.ts
nav: [
{ key: 'work', href: '/work' },
{ key: 'services', href: '/services' },
{ key: 'studio', href: '/studio' },
{ key: 'journal', href: '/journal' },
],
footerNav: [
{ key: 'careers', href: '/careers' },
{ key: 'contact', href: '/contact' },
],
legalNav: [
{ key: 'privacy', href: '/privacy' },
{ key: 'imprint', href: '/imprint' },
],
  • nav is the header and the mobile menu. footerNav adds links that appear only in the footer, and legalNav is the small print row.
  • key points at a label in the nav section of each dictionary (t(locale).nav.work). To add a link, add the key to en.ts and the other dictionaries first; TypeScript tells you if one is missing.
  • Write href without a language prefix. Links are localised for you, so /work becomes /de/work on German pages.
src/config/site.ts
theme: {
preset: 'signal',
switcher: true,
},
Setting Values Notes
preset 'signal', 'cobalt', 'forest', 'mono', or your own The look of the whole site. See Presets.
switcher true / false Floating preset picker for theme demos. Turn it off for a real site: only the active preset’s CSS then ships.

Light and dark mode are not a setting. The site follows the visitor’s system and the toggle in the header lets them override it.

journal.pageSize is how many articles /journal shows per page. The featured lead article is not counted.

src/config/site.ts
cta: {
contact: '/contact',
work: '/work',
},

The theme uses one destination per intent: every “Start a project” button goes to cta.contact and every “View work” link to cta.work. Point contact at a booking page if you prefer, for example 'https://cal.com/your-studio'. External URLs are left as they are.

credit adds “Theme by LessCodex” to the footer’s bottom row. Set it to false to remove it; the licence doesn’t require it.

formEndpoint is where the contact form posts. Leave it empty to run the form in demo mode. See Contact form.

SwiftAgency is made byLessCodexLicence