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
[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 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)| Key | What to write |
|---|---|
name | Your business name. Leave it empty to use [site] title |
legalName | Your registered company name, if it differs. Only used in structured data |
type | The kind of business for search engines. One of LocalBusiness, HomeAndConstructionBusiness, GeneralContractor, HousePainter, Plumber, Electrician, HVACBusiness, RoofingContractor, Locksmith, MovingCompany, ProfessionalService |
phone | The number as it is dialed, in E.164 format: +, the country code, then digits only. +15551234567, +447700900123. This is what call links use |
phoneDisplay | The number as people read it: (555) 123-4567, 07700 900123. Empty shows phone |
sms, smsDisplay | A mobile number that takes text messages, in the same two formats. Empty hides every “Text” link |
email | Your public email address |
priceRange | $, $$, or $$$. Only used in structured data |
timezone | Your 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 |
closedDates | Days 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-2country 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
| Value | Where it shows |
|---|---|
phone, phoneDisplay | The 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, smsDisplay | The Text option on the contact page and the guarantee claim section, and the Text button of the mobile action bar when showText = true |
email | The footer, the contact page, the guarantee claim section, and the areas section’s tabs |
address | The default and columns footers, the contact details, and job postings |
hours, timezone | The opening hours and “Open now” line in the footer, on the contact page, in the CTA band, and next to phone lines |
closedDates, timezone | The dates the booking form offers |
name | The structured data, llms.txt, the RSS feed title, the default author meta tag, and job postings |
type, legalName, priceRange, geo | The structured data (JSON-LD) only |
| Everything | The 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:
| Token | Becomes |
|---|---|
{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
- Run
npm run devand read the terminal: a[business]line names any value that was ignored. - Open the homepage at phone width. Tap Call in the bottom bar: your phone app should open with your number.
- Open
/contact/and check the phone, email, address, and hours. - 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 insrc/content/areas/english/ and french/, so the area pages use this number.