Deepsand Bore Co.

How Deepsand Bore Co. was built

A fictional Perth garden bore driller — Wangara yard, five suburbs of the metro sand plain — built as a conversion-first landing page for one job: get a "what would a bore cost at my place" enquiry. The page's whole argument is geological: show the customer what's under their lawn, and the price stops being a mystery.

Concept

The ground is the pitch

Every Perth gardener knows two facts: bore owners water three days a week (scheme sprinklers get two), and drilling cost depends on what's under the suburb. So the hero is a drilling cross-section, not a stock photo of a rig. Pick a suburb and the drill string descends through Bassendean sand, coffee rock and Tamala limestone to the water table — with the itemised installed price beside it. The interaction answers the exact question the visitor arrived with.

Palette

Argued from the sand plain

#FBF6EApage ground — dry Bassendean sand, pale and warm
#2E2A22ink — coffee-rock dark; 12.9:1 on the ground
#146C77aquifer teal — water lines and fills, links, CTAs. Never small text on dark
#C2803Blimestone ochre — drill marks, strata banding, accents only (3.0:1 — line/mark token)

The ink/line split: ochre and teal carry lines, marks and fills; body text always sits in the coffee-rock ink (or a derived #6B6353 muted ink at 5.5:1). Small ochre-family text uses the darkened #8A5A26 ink variant.

Type

A geological ledger

Bitter (slab serif, 600–800) for display — it reads like a core-sample label, and the huge drilled-depth figure ("30 m") set in Bitter against the metre ticks is the page's typographic moment. Public Sans carries body copy: plain, legible, government-form trustworthy — right for a trade that quotes in writing.

Signature

The Strata Finder

An SVG cross-section (no libraries — hand-built SVG + vanilla JS) with five suburb chips. Each suburb carries a strata profile (layer boundaries), a water table depth and a drill depth. Choosing a suburb:

Second-read details: once the bit reaches depth, the bottom three metres of casing become a slotted screen and the standing water rises inside the column to the water table — which is exactly what a real bore does — and a cuttings mound grows beside the collar in proportion to the hole. The water table line pulses with an opacity floor of 0.58, so the signature is visibly alive at any thumbnail capture instant. Reduced motion renders the fully settled frame with a static line.

State probe: window.__bores exposes suburb, all computed figures and a settled flag; QA gates on state, never on seconds.

Honest numbers

The pricing model

All figures are pinned anchors, cross-checked in the harness against an independently reimplemented oracle. Drilling $95 per metre, minimum 18 m billed (a length clamp — stated in the meter's own unit). Submersible pump & headworks $2,450; centrifugal $1,650, eligible only where the water table is within the 7 m suction limit. Licensed electrical $380, always itemised.

SuburbWater tableDrill depthBilledPumpInstalled
Wanneroo9 m27 m27 mSubmersible$5,395
Morley (rest state)12 m30 m30 mSubmersible$5,680
Spearwood6 m14 m18 m (clamp binds)Centrifugal$3,740
Canning Vale15 m36 m36 mSubmersible$6,250
Duncraig22 m45 m45 mSubmersible$7,105

The cheapest output — Spearwood's $3,740, where the clamp binds and the shallow coastal water table earns the centrifugal pump — equals the services grid's "new bore + pump from $3,740" floor, so the page never argues with itself. All five totals were measured from the running page and matched the oracle exactly; the clamp note renders only for Spearwood, and the centrifugal eligibility note states the suction-limit rule it applied.

Conversion decisions

Why the page is shaped this way

Local SEO

What we'd implement for the real business

This demonstration deliberately ships only WebPage schema naming it a demonstration — fictional review or business data in a real search index would be dishonest markup. For the real client, we'd ship LocalBusiness + Review structured data like this, fed by their actual Google reviews:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HomeAndConstructionBusiness",
  "name": "Real Bore Drilling Co.",
  "telephone": "+61-8-XXXX-XXXX",
  "address": { "@type": "PostalAddress", "addressLocality": "Wangara",
               "addressRegion": "WA", "postalCode": "6065", "addressCountry": "AU" },
  "geo": { "@type": "GeoCoordinates", "latitude": -31.79, "longitude": 115.83 },
  "areaServed": ["Wanneroo", "Morley", "Spearwood", "Canning Vale", "Duncraig"],
  "openingHours": ["Mo-Fr 07:00-16:00", "Sa 07:00-12:00"],
  "priceRange": "$$",
  "aggregateRating": { "@type": "AggregateRating",
                       "ratingValue": "4.9", "reviewCount": "87" },
  "review": [{
    "@type": "Review",
    "author": { "@type": "Person", "name": "Real Customer" },
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "reviewBody": "Pulled from the live Google reviews feed."
  }]
}
</script>

Plus suburb landing pages keyed to the bore-log database ("bore drilling Morley — typical depth 30 m"), Google Business Profile with service areas, and review-request automation off job completion.

What changes for the real client

Their rig and crew photography replaces nothing structural — the cross-section stays, because it converts. The suburb table extends to their full bore-log history; the enquiry form posts to their job-management system (ServiceM8, Tradify or AroFlo all take webhook leads); reviews pull from their Google profile; and the watering-roster copy deep-links to the Water Corporation roster lookup so the "three days" claim is one tap from proof.

Process

Iteration log

Pass 1 — Craft

Screenshot review at 1200×750 and 375. Baseline-aligned the price-card line items (amounts were top-aligned against wrapped labels) and tightened label line-height. Verified strata label legibility in both directions — paper text on the coffee-rock band, dark ink on sand and limestone — and the water-table label got a ground-coloured pill so teal small text never sits on the sand fill. Chased a suspected pale "blob" over the limestone in the full-viewport capture; 2× magnification proved it was downscale moiré from the limestone banding pattern, not a rendering defect — no code change, artifact logged.

Pass 2 — Depth

Added the geological second read: at depth, the casing's bottom three metres become a slotted screen and standing water rises inside the column to the water table — the detail a driller would notice. A cuttings mound now grows beside the collar in proportion to hole depth, and the installed total gets a small spring pop (cubic-bezier(.34,1.56,.5,1), 400 ms) on every suburb change, exempt under reduced motion.

Pass 3 — Hardening

Chanel rule: removed the map's dashed service-radius ring — the suburb dots and area list already carry the message. Re-ran the full 63-assert harness: every suburb driven against an independently reimplemented oracle (all five totals exact, Spearwood's clamp and centrifugal notes visible only when they should be), a rapid-fire five-chip drive in one evaluate to hunt swap races, empty submit after a hard reload (3 validation signals) and filled submit (confirmation in the demo lexicon), 375 masthead clearance and sticky-bar geometry, reduced-motion settling instantly at 30 m, and zero console errors across every run.

Verification: headless Chrome via puppeteer-core; QA gated on window.__bores.settled, never on wall-clock; rest state measured from the running page: Morley, drilled 30 m, $5,680.