Generative Assets · Industry demo build notes
Chalkline Pest Control is a fictional Perth pest control operator — inspections and treatments, based in Morley, metro-wide. The page has one job: get a homeowner who heard something in the roof to book a treatment or a termite inspection. The direction is field-guide precision — a naturalist's calm applied to the enemy, zero panic marketing.
Per the ink/line split, ochre is never body text; copy runs in gum green on chalk (≈12:1), secondary copy in a derived ink #57655C (≈5.6:1), and link text in a darkened slate #38596D (≈6.5:1). Ochre appears as artwork strokes and one card heading at display size.
Barlow Semi Condensed (500–700) carries the display voice — van-signage utility, field-manual headings, the small-caps zone labels inside the cutaway. Mulish handles body and UI at 16px+ — plain, legible, unpanicked. The typographic bravery moment is the field-guide card: the pest's name set large in ochre over a ruled specimen table, exactly like a plate caption in a naturalist's handbook.
A procedural SVG cross-section of a Perth home (760×560 viewBox): gabled roof void, kitchen with kickboard, stumped subfloor, perimeter garden beds, and a timber fence line. Five tappable zones (SVG <g role="button"> with keyboard handlers, mirrored by chip buttons for mobile and accessibility) each reveal that zone's resident pest drawn in threat ochre: rats tracking the roof void, German cockroaches behind the kickboard, termite galleries climbing a stump, coastal brown ants breaching the perimeter, red-backs on the fence rails.
The draw is done with pathLength="1" + stroke-dasharray animation — the mud lead literally climbs the stump. At rest the subfloor is pre-selected with a 12-second intro draw, so the static thumbnail catches the termite lead mid-climb; any interaction drops to a 1.4s draw. Pest groups toggle via a CSS class, never the hidden IDL property — SVG groups don't have one (a W13 lesson), and the stylesheet keeps the [hidden]{display:none !important} guard for the HTML form/confirmation swap.
Each zone surfaces a field-guide card: what it usually is in plain language, the treatment, an honest price that must equal the services grid floor for the same treatment ($189 general / $165 rodent / $275 termite inspection), and the season it peaks. "Book this treatment" pre-fills the enquiry form with the zone scenario. After a successful submit, a slate "Booked" badge lands on that zone and its outline turns solid slate — the treated/scheduled state deliberately never wears ochre. Second-read detail: a tiny bee near the garden bed opens a card explaining we refer bees to a swarm collector, never treat them. Live state is exposed at window.__pest (zone, pest, price, season, form status, prefill, booked).
tel: link (icon-only below 560px), hero call button, a large tel link beside the form, and a mobile sticky call/book bar. Pest jobs are phone jobs.This demo page carries only WebPage schema naming it a demonstration — fictional structured data in a real index is dishonest markup. A real Chalkline would ship LocalBusiness + Review schema like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "PestControlService",
"name": "Chalkline Pest Control",
"telephone": "+61 8 XXXX XXXX",
"url": "https://chalklinepest.com.au",
"areaServed": ["Morley WA", "Dianella WA", "Bayswater WA", "Perth WA"],
"address": { "@type": "PostalAddress",
"addressLocality": "Morley", "addressRegion": "WA", "postalCode": "6062" },
"openingHours": ["Mo-Fr 07:00-17:00", "Sa 08:00-13:00"],
"priceRange": "$160-$4,800",
"aggregateRating": { "@type": "AggregateRating",
"ratingValue": "4.9", "reviewCount": "187" },
"review": [{ "@type": "Review",
"author": { "@type": "Person", "name": "…real customer…" },
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"reviewBody": "…from the live reviews feed…" }]
}
</script>
Plus: Google Business Profile with service areas, per-suburb service pages fed from one template, and review markup wired to a real feed — never hand-typed.
Their licence number, their reviews feed, and their booking flow. For WA pest operators that means wiring the form and reminder service into Formitize (the pest industry's standard for AS 3660 inspection reports and job forms), ServiceM8 or GorillaDesk for scheduling and recurring annual-treatment reminders, and SMS confirmation on booking. The Cutaway Inspector stays — pointed at their price list, with each card's treatment mapped to a bookable job type.
booked:"kitchen".