Building a site for this owner
Read this before you build a new site or rebuild most of one: the authoring
guides (vzk/authoring and the focused guides it names) make a page valid,
and this one makes the site belong to the person whose name is on it. Copying
a site the owner already has? Read copying too: its articles, case studies
and other repeated items belong in tables.
A site that renders but could belong to anybody in the same trade has failed. The owner wants a site that sounds like them, shows their work and gives their prices.
Start from a brief, never a blank page
Section titled “Start from a brief, never a blank page”Before you write a page, collect the brief. Take what you can from
get_site, list_files and the conversation, and ask for the rest:
- the trade, and the business name the way the owner writes it;
- the city, and the area they serve;
- three to six services, each with a real price (or a “from” price) and what it includes;
- who the clients are, and what they ask before they book;
- the one thing a visitor should do: call, book, send a message, visit;
- the owner’s own sentences: a bio, captions, a reply they send customers;
- the languages the site speaks;
- the pictures on the disk, and which of them are the owner’s own work.
Ask for everything that’s missing in one message, once. If a fact still isn’t there, leave its slot visibly empty and tell the owner it is waiting for them. A price you made up is a promise on their site, under their name, that they never made.
Pages by trade, not by starter set
Section titled “Pages by trade, not by starter set”Decide what a client of this trade needs to know before they get in touch,
then choose the pages that carry it. If the trade has a playbook (the
guides topic lists them under playbooks/), read it: it names the pages
and points at a whole worked site in the sites topic. Without one, start
from the nearest trade below.
- Photographer or videographer. The work first, then services with prices, then who they are. They don’t need a blog unless they will write one, or a feature grid before the first picture.
- Plumber, electrician, other trades. The phone number, the area served, the hours and the prices on the first screen, then real jobs and credentials. They don’t need a mission statement, a blog or a gallery of tools.
- Trainer or coach. What a session is, where and when, what it costs, and how to book the first one. They don’t need before-and-after photos they can’t show.
- Advisor (finance, tax, marketing). Who they help with which problem, how working together goes, how pricing is set, and the credentials a client checks. They don’t need a handshake photo or a page of “values”.
Two rules hold for every trade:
- One
h1per page, and the first screen says what and where. Either in the heading itself (“Plumber in South Manchester”) or in the line right above a heading that says something sharper (“Photographer, Berlin” over “Honest photographs of people in love.”). A slogan with no trade and no place near it tells a visitor nothing. - One call to action, repeated. Pick it from the brief and use the same
words in the bar, the first screen, the end of each page and the phone’s
bottom bar. It has to work: a
tel:link, a form that writes to a table (vzk/tables), or a link to where booking happens. Two competing primary buttons weaken both.
Don’t add pages to look complete: an empty blog, a testimonials page with no testimonials or a FAQ you wrote yourself is worse than no page. The one page you may not skip is one the law requires, such as an Impressum in Germany and Austria; ask the owner for its details.
Copy rules
Section titled “Copy rules”- The owner’s words over yours. Edit their sentences for length, not for voice. A sole trader writes “I”, not “we”.
- Concrete over adjectives. “Preview gallery within 48 hours” beats “fast turnaround”; “a fixed price before I start” beats “transparent pricing”. A sentence that would be just as true of every competitor gets cut or replaced by a fact.
- Short. A lead is two sentences. A service is a name, a price and one or two sentences about what is included.
- Never write “welcome to my website”, “passionate about”, “one-stop shop”, “quality service”, “look no further”, “we pride ourselves”, lorem ipsum, or a name that is not the owner’s.
- Never invent a review, a quote, a client, a rating, a years-in-business number, a count of jobs, a certification, a regulated job title or a price. If it is not in the brief or the owner’s files, it is not on the site.
- Never carry a sentence over from a worked site or a playbook. Its promises (“I call back within the hour”) are its own owner’s, and this owner never made them.
- Every declared language gets real copy, in the page’s own dictionary
(
vzk/languages). A second language that is the first one again is a broken page in that language. - Title and description are the search result. Lead with the page’s subject (“Wedding photography in Lviv”, not the site’s name alone), keep the title to about 60 characters, and write the description as one or two sentences of about 150 characters, not a list of keywords.
Look and pictures
Section titled “Look and pictures”Pick the look by what the site has to carry (the looks topic has the
stylesheets):
mineralis quiet and editorial and gets out of the pictures’ way: photographers, videographers, makers, designers.claretis warm paper and a serif, trust built over a conversation: advisors, finance, therapists, tutors.cobaltis bright, plain and round-cornered, for when the phone number and the prices are the point: plumbers, electricians, cleaners, repairs.pressis loud and tight, for a strong personal brand: trainers, coaches, events, marketing.
Re-skin rather than pick when the owner already has a brand: a colour on
their van, a typeface on their cards, a logo. Start from the nearest look and
change its @theme tokens (vzk/styling). Pages never branch on
the look.
For pictures, call list_files and look before you place anything:
- The owner’s own work beats anything else, including a better-lit stock photograph.
- The hero is the single best picture: of the work for a photographer, of the owner at work for a trade or a trainer.
- Match the frame to the picture: a wide picture in a wide frame, a portrait in a tall one. Never crop a face through the eyes.
- Alt text says what is in the picture, not “image” or the file name.
- Each picture appears once on a page.
- No picture for a slot: leave the empty frame, and tell the owner what should go there.
The review before publish
Section titled “The review before publish”Run this against your own draft before you send the preview link, and fix what fails:
- At phone width, the first screen says what the owner does, where, and for whom, and shows the call to action.
- Every price, hour, place, number and credential comes from the brief or the owner’s files. You can say where each one came from.
- Nothing from the “never write” list, and no sentence a competitor could use unchanged.
- One
h1per page. One call to action, worded the same everywhere, and it works: the number dials, the form’s table exists, the anchor is on the page. - Every declared language reads right. Open the preview under each language’s path, not only the default.
- Every page has its own
titleandmetadescription in every declared language, the others undersettings.translations[locale], and each says what that page is about.get_sitelists what a page is missing undermissing_meta; a table’s page takes its title from each row. - The preview works at about 390 pixels wide: no sideways scrolling, no
clipped words, and a menu that opens. If you cannot open a browser, check
that every grid collapses to one column below
md:. - The write results and
list_notificationsreport nothing missing: no dangling asset, link or component. - Editing one row of each table (posts, case studies, services and the
like), its title, body or other fields, changes its page and every
listing that shows it, because all of them read the row (
copying). - Nothing your build replaced is left behind: delete the pages you rebuilt elsewhere, and every component nothing names any more.
- Every post and portfolio item meant to be live has a
published_atday that has come.get_siteshowspublishedbesiderecordsonpostsandportfolio; if it is short, ask the owner which rows are ready rather than dating them yourself.
Then send the preview URL, with the list of empty slots and anything you assumed. Publish only after the owner approves.
What generic looks like
Section titled “What generic looks like”Each of these is a draft to rewrite, however well it renders:
- A hero that says “Welcome to Mira Halden Photography” or “Capturing life’s precious moments”, where it should say “Wedding and portrait photographer in Berlin”.
- Three cards with an icon each, titled “Quality”, “Reliability” and “Passion”. None of them is a service, a price or a fact.
- “About us” for one person, in the third person, opening “With over 10 years of experience” when the brief gave no number.
- A testimonials band quoting “Sarah K.” with five stars nobody gave.
- A stats row: “500+ happy clients, 98% satisfaction”.
- A stock photograph of a smiling plumber, a camera on a table, or a handshake.
- “Book now”, “Learn more” and “Contact us” side by side on the first screen.
- “Contact for pricing” when the owner gave you prices.
- A photographer’s site and a plumber’s site that are the same page with the nouns changed.