Style guide
What actually exists in the build. Noindex, not in the nav, and not in the sitemap. If a component isn't on this page it probably shouldn't appear on a page either.
Color
Tokens live in src/styles/tokens.css, lifted from the v1 stylesheet rather than retyped. Semantic tokens (--bg, --heading, --accent) remap under [data-theme]; raw --c-* values never change.
--c-ink
#14120E · Near-black, warm
--c-ink-soft
#2A2620 · Softer ink
--c-bone
#FAF8F4 · Ground, warm paper
--c-bone-2
#F2EEE7 · Tinted sections
--c-paper
#FFFFFF · Cards, surfaces
--c-grey
#6B6357 · Muted text
--c-line
#E2DCD1 · Borders
--c-line-2
#CFC6B7 · Stronger borders
--c-blue-deep
#2B4C6F · Accent, light theme
--c-blue-pale
#A8C4DE · Accent, dark theme
--c-green
#0E7A55 · Client-work tag
--c-amber
#8A6A3B · Reserved
Type
Display is Instrument Serif, body is Inter. Both are self-hosted and preloaded. Headings are weight 400 — never bold the serif.
Heading one, clamped
Heading two
Heading three
A lede. Slightly larger, muted, capped at 62ch so it never runs the full width of a desktop screen.
Body copy. Plain English, first person, no exclamation marks. Any technical term gets explained in the same sentence or it doesn't appear.
An eyebrow
Cards and tags
A card
Surface, one border, no shadow.
Work tags
Notice
Concept build. Nobody commissioned this.
Prices, from config only
Every number below is read from src/data/pricing.ts. No SwansonX price is hard-coded anywhere in the site, including here.
One module
$950
The single worst part of your week. A lead inbox, or quoting, or booking — one thing, built properly, working on its own.
Two or three modules
$1,950
The pieces that only make sense together. Enquiries feeding jobs, or quotes feeding follow-up.
Back Office
from $2,995
Everything connected: leads, customers, jobs, booking, review requests and a dashboard over the top.
Larger than that
Quoted in writing
Priced before anything starts, the same as every other number here. No hourly surprises.
- Website from $1,495, landing page from $1,195
- Partner Plan $300/month, Site Care $49/month
- Extra work is quoted before I start.
- Nulls render as nothing, never as placeholder text.
paybackFloorandhourlyRateare null, so no claim about either appears on any page.supportResponsewas null until Sean set it on 11 September 2026; the Partner Plan page still guards it, so emptying it removes the claim again. - Stack named in data: Convex, Vercel.
Steps, tables and FAQ
A step
Numbered by CSS counter, so the markup stays a plain list.
Another step
Used on the process, guide and trade pages.
| Before | After | |
|---|---|---|
| A row | What it was | What it is |
| Another | Scrolls sideways on a phone | Inside its own overflow box |
Why no FAQPage schema?
Why plain details elements?
Rules that aren't visual
- First person, always. Never "we" or "our team".
- US English spelling.
- Numbers over adjectives. "$950, half up front" beats "affordable".
- Say the downside. What isn't included, and when the answer is to do nothing.
- One testimonial on the whole site, Kelly M., verbatim, on the homepage only.
- Concept builds say "Concept build" wherever they appear.
- No invented clients, metrics, savings figures, integrations or local facts.