Build guide · Generative Assets

How Cadence Podiatry was made.

A fictional foot & gait clinic in Applecross, built as a conversion-first landing page for the podiatry industry. One job: book the initial assessment. One signature: a plantar pressure map that rolls through the gait cycle and answers "what will my first visit involve, and cost?" for whatever hurts.

Concept

Cadence Podiatry treats heel pain, running injuries, ingrown nails, kids' intoeing and diabetic feet from a single Applecross room. The audience is a heel-pain sufferer at 6am, a parent watching a child trip, a diabetic due their annual check — people who want calm clinical honesty, not a sales funnel. The page's single job is the booking enquiry, so the signature element is the triage: pick what hurts, watch the pressure map re-weight to your problem, read exactly what the first visit involves and costs, and the form is already filled in.

Tone rule for a health page: no overclaiming. "Most ingrown nails don't need surgery" and "chemist insoles are genuinely enough for some feet" do more converting on this page than any superlative could — they're also simply true of good podiatry practice.

Palette — the clinic and the plate

Organic-clinical warmth: a room with plants and clean lino, and one instrument that glows. The coral is reserved for pressure — it never colours text, so the page stays quiet and the map keeps all the drama.

Sage ground#EFF3EEPage ground — waiting-room calm.
Pine ink#243328Body text, 12.2:1 on sage. Also the plate's dark room.
Moss green#3E7A52CTAs, links, the gait rail. Deepened to #2F5E40 for small text links.
Pressure coral#C25444The heat blobs only. Marks, never type.

Ink/line discipline: moss is the mark-and-CTA colour; small text on sage uses pine ink or the muted #54645A (≥4.5:1); labels on the dark plate use #DDE8DE and #9FB3A4, both clear of the coral blobs.

Type

Bricolage Grotesque — STRIKE · STANCE · TOE-OFF

Figtree carries the body copy: friendly, legible, nothing to prove. Bricolage Grotesque does the display work — contemporary warmth with a slightly humanist skeleton that suits a clinic better than a geometric would.

The Gait Line — how the signature works

The pressure plate is a single inline SVG: two mirrored plantar footprint paths (one <path>, reused via <use> with a scale(-1,1) group for the left foot), four pressure-zone ellipses per foot (heel, arch, forefoot, hallux) plus a rolling blob, all filled with coral radial gradients, softened by one feGaussianBlur filter and clipped to the footprint outline. A rAF loop advances a stride accumulator: during the stance fraction (62% of a 2.4s stride) the blob's centre and radii interpolate along a heel → arch → ball → hallux skeleton with a sine loading envelope; the two feet run in antiphase, so one foot is always mid-stance — and the blob's opacity has a designed floor of 0.55, so the signature is visibly alive at any thumbnail capture instant.

Symptom chips re-weight the map: each symptom defines target opacities for the four zones (heel pain weights the heel to 0.95; the diabetic check flattens all four to ~0.5 because neuropathy doesn't pick a zone; kids' intoeing also rotates both footprint groups 9° toes-in about their midfoot pivots). The chip handler token-invalidates the in-flight cycle before the state swap, then the frame loop crossfades zone opacities toward the new targets — slow on the entrance (first draw), snappy (~half a second) on every subsequent swap via a firstDraw flag. The same handler swaps the care-plan card (title, fee, honest visit lines, pathway figure) and pre-fills the booking form's symptom chips. State probe: window.__podiatry exposes symptom, cycle phase, fee, blob opacity and a settled flag.

Honest numbers

Every figure on the page is pinned arithmetic from the fee schedule — measured from the running page and cross-checked against an independently reimplemented oracle in the QA harness.

ItemFeeWhere it surfaces
Initial assessment (45 min)$135Care card for heel / arch / ingrown / kids chips; grid
Follow-up (30 min)$95Grid — and the "Appointments from $95" floor line
Custom orthoses, per pair$560Grid; arch-chip pathway line (incl. scan, fitting, one review)
Ingrown nail surgery, one side$440Grid; ingrown chip's "if surgery is the answer — most aren't" line
Diabetic annual foot assessment$110Diabetic chip card; grid
Kids' gait assessment$135Grid (same initial fee, stated)
Plantar-fasciitis first six weeks$695Heel card pathway = $135 initial + $560 orthoses; follow-ups as clinically needed, stated
Medicare / EPC rebateno numberCare card footer and fees-grid note — "set by Medicare, current schedule shown at booking"

The Medicare line is a designed price-less state: the rebate is authority-set and item-dependent, so any printed figure would be the dishonest choice. The declaration appears wherever fees do — the care card and the grid.

Conversion decisions

Local SEO we'd implement for the real business

The demo page ships only honest WebPage/CreativeWork schema naming it a demonstration — fictional structured data in a real index is dishonest markup. A live clinic build would ship the precise schema.org subtype with real NAP, geo, hours and review feed:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Podiatrist",
  "name": "Cadence Podiatry",
  "description": "Foot and gait clinic in Applecross — heel pain,
    custom orthoses, ingrown nails, kids' gait and diabetic foot care.",
  "url": "https://cadencepodiatry.com.au",
  "telephone": "+61 8 XXXX XXXX",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Suite X, XX Canning Hwy",
    "addressLocality": "Applecross",
    "addressRegion": "WA",
    "postalCode": "6153",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -32.014, "longitude": 115.840 },
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "07:30", "closes": "18:00" },
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday", "opens": "08:00", "closes": "12:30" }
  ],
  "priceRange": "$95–$560",
  "areaServed": ["Applecross","Ardross","Mount Pleasant","Booragoon","Melville"],
  "review": {
    "@type": "Review",
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "author": { "@type": "Person", "name": "Real Patient" },
    "reviewBody": "Sourced from the clinic's live Google reviews feed."
  }
}
</script>

Podiatric is schema.org's MedicalBusiness subtype for exactly this clinic — more precise than LocalBusiness, which is what a careful SEO build chooses. Review markup only ever wraps the clinic's real, attributable reviews.

What changes for the real client

Iteration log

Pass 1 — Craft

  • Rest state opened with STRIKE highlighted while the blob sat at midstance — the phase words now boot consistent with the designed midstance rest, and the live readout follows the actual cycle.
  • Intoeing rotation sign was toes-out on the mirrored left foot; the mirror conjugates rotation, so both feet now use a −9° local rotation that reads toes-in on screen.
  • Care-card swap timeout re-rendered the clicked symptom rather than current state — under rapid chip clicks it could paint a stale card; it now always renders S.symptom.
  • Footprint outline verified by screenshot at native zoom — heel width, arch waist and toe row read as a plantar print, not a blob stack.

Pass 2 — Depth

  • Second-read detail: the diabetic chip flattens the map to a uniform whole-foot weighting — the one symptom where "no hot spot" is the clinically honest picture — and its card says why.
  • Kids' chip rotates the footprints 9° toes-in — the map itself demonstrates intoeing rather than illustrating it generically.
  • The gait-rail marker tracks the stance fraction in lockstep with the blob and parks at toe-off through swing; the plate's live readout names the phase in words.
  • Care-card crossfade (140ms dip) keeps the fee swap legible instead of flickering mid-transition.

Pass 3 — Hardening

  • 375px masthead checked first: wordmark + Call pill + Book button clear each other; number collapses to "Call" under 560px; sticky call/book bar holds 54px targets.
  • Reduced motion renders the settled midstance frame — heel zone weighted, blob visible at its floor — and chip swaps re-render statically. rAF pauses on document.hidden.
  • Empty submit raises per-field errors and focuses the first; the phone pattern is v-flag-valid; confirmation copy stays in the "received / we'd call" family.
  • Measured the chip-swap crossfade converging in ~0.7s — over the half-second snappy budget — and raised the lerp rate so driven swaps settle in ~0.5s (verified via the probe's settled flag).
  • Chanel rule: dropped a planned scan-line sweep on the diabetic state — the uniform weighting says it better with less.

Cadence Podiatry is a fictional business — a podiatry industry demonstration designed & built by Sapience Analytics, part of the Generative Assets collection.

← Back to the site  ·  Collection index