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

Business Info

File: src/config/config.toml ([business]) · Skill level: Beginner

Your company name, phone number, email, address, and opening hours are written once, in the [business] table of config.toml. Every page reads them from there: the header, the mobile action bar, the footer, the contact page, the area pages, the booking form, the structured data for search engines, and llms.txt. Change a number here and it changes everywhere.

All the shipped values are samples. The phone numbers use the fictional 555-01xx range, and the address is made up. Replace them before you launch.

The Business Table

src/config/config.toml
[business]
name = "" # Empty uses site.title
legalName = "" # Optional, for structured data
type = "LocalBusiness" # schema.org type
phone = "+15550100199" # sample. E.164 format, used for tel: links. Empty hides every call link
phoneDisplay = "(555) 010-0199" # sample. How the number is shown
sms = "+15550100198" # sample. Optional number for "Text" links. Empty hides them
smsDisplay = "(555) 010-0198" # sample
email = "[email protected]" # sample. PLACEHOLDER: replace
priceRange = "$$" # Shown in structured data
timezone = "America/New_York" # IANA time zone for "Open now" and booking dates
closedDates = [
"2026-12-25",
"2027-01-01",
] # sample. Holidays: no bookings on these days (YYYY-MM-DD)
KeyWhat to write
nameYour business name. Leave it empty to use [site] title
legalNameYour registered company name, if it differs. Only used in structured data
typeThe kind of business for search engines. One of LocalBusiness, HomeAndConstructionBusiness, GeneralContractor, HousePainter, Plumber, Electrician, HVACBusiness, RoofingContractor, Locksmith, MovingCompany, ProfessionalService
phoneThe number as it is dialed, in E.164 format: +, the country code, then digits only. +15551234567, +447700900123. This is what call links use
phoneDisplayThe number as people read it: (555) 123-4567, 07700 900123. Empty shows phone
sms, smsDisplayA mobile number that takes text messages, in the same two formats. Empty hides every “Text” link
emailYour public email address
priceRange$, $$, or $$$. Only used in structured data
timezoneYour time zone, for example "America/Chicago", "Europe/London", "Europe/Paris". It decides when the site says “Open now” and which dates the booking form offers
closedDatesDays you don’t work, as "YYYY-MM-DD". The booking form doesn’t offer them

Address

[business.address]
show = true # false = service-area business: street and postal code are hidden everywhere
street = "100 Example Street, Suite 200" # sample
locality = "Springfield" # city, sample
region = "ST" # state or province, sample
postalCode = "00000" # sample
country = "US" # ISO 3166-1 alpha-2

country is the two-letter country code (US, CA, GB, FR). If you work from home or from a yard customers don’t visit, set show = false: the street and postal code are then hidden on every page, and only the city and region show. The structured data leaves out the street.

[business.geo] takes an optional latitude and longitude for map results. Leave both empty if you are not sure.

Opening Hours

# Opening hours per day, 24-hour "HH:MM-HH:MM". Several ranges: "08:00-12:00,13:00-17:00". Empty = closed.
[business.hours]
mon = "07:30-18:00" # sample
tue = "07:30-18:00" # sample
wed = "07:30-18:00" # sample
thu = "07:30-18:00" # sample
fri = "07:30-18:00" # sample
sat = "08:00-14:00" # sample
sun = ""
  • Use the 24-hour clock: "08:00-17:30", not "8am-5:30pm".
  • A lunch break is two ranges: "08:00-12:00,13:00-17:00".
  • "" means closed that day.
  • Hours that run past midnight are not supported.

The site groups days with the same hours for you and writes the times in the format of the page’s language. The “Open now” line uses timezone, so a visitor in another time zone still sees whether you are open.

Where Each Value Appears

ValueWhere it shows
phone, phoneDisplayThe phone pill in the header (default, simple, centered layouts), the green call strip of the utility header, the Call button in the mobile menu and the mobile action bar, the footer, the contact page, the CTA band, the FAQ help box, the booking form, the 404 page, and the page headers that show a phone line
sms, smsDisplayThe Text option on the contact page and the guarantee claim section, and the Text button of the mobile action bar when showText = true
emailThe footer, the contact page, the guarantee claim section, and the areas section’s tabs
addressThe default and columns footers, the contact details, and job postings
hours, timezoneThe opening hours and “Open now” line in the footer, on the contact page, in the CTA band, and next to phone lines
closedDates, timezoneThe dates the booking form offers
nameThe structured data, llms.txt, the RSS feed title, the default author meta tag, and job postings
type, legalName, priceRange, geoThe structured data (JSON-LD) only
EverythingThe business entry in the structured data on every page, and the top of /llms.txt

The business name in the header logo is not [business] name: it is logoText in [site]. The footer copyright uses {brand}, which is site.title. When you rename the company, change all three. See Site Identity & Logo.

Use The Details In Your Own Text

In the body of a Markdown (.md) page, such as the legal pages or a blog post written as .md, you can type these tokens and the site fills in the value:

TokenBecomes
{name}[business] name
{phone}phoneDisplay
{email}email
{address}The address, formatted for the page’s language
{hours}The opening hours, grouped by day

A few fields in content files also accept {phone}: the form error messages, the announcement text, and the rate cards’ largerNote in the pricing file. The comment next to a field says when it does. .mdx files read {…} as code, so the tokens don’t work there.

Check It

  1. Run npm run dev and read the terminal: a [business] line names any value that was ignored.
  2. Open the homepage at phone width. Tap Call in the bottom bar: your phone app should open with your number.
  3. Open /contact/ and check the phone, email, address, and hours.
  4. In a browser, view the page source and search for "telephone" to see the number search engines get.

Do It With AI

Set my business details in [business] of src/config/config.toml: name "[NAME]", phone
[NUMBER] (convert it to E.164 for phone and keep my format for phoneDisplay), email [EMAIL],
address [STREET, CITY, REGION, POSTAL CODE, COUNTRY], time zone [ZONE], hours [DAYS AND TIMES],
closed on [DATES]. [We don't take texts: set sms and smsDisplay to "".] Remove the "# sample"
comments on the values you change. Then set phone and phoneDisplay to "" in every file in
src/content/areas/english/ and french/, so the area pages use this number.
Type something to search...