A five-page brand site for a Round Rock therapist and life coach — built to carry one throughline, from the court to the couch, in plain HTML, CSS, and JS.
Simone Deloach spent years competing as a professional athlete before she ever sat in a therapist's chair. Now a licensed therapist and life coach in Round Rock, Texas, she needed a site that didn't read like a generic counseling practice — one that carried her actual throughline, athlete to clinician, without leaning on stock photography of handshakes and lighthouses.
The site had to do three jobs at once: introduce Simone's unusual path in her own words, lay out three genuinely different ways to work with her (a free consult, therapy, and life coaching — each with its own tone and expectations), and make booking and legal disclosures (a federally required Good Faith Estimate notice) easy to find without burying the warmth of the rest of the site.
No CMS, no client-side framework, no build step — just five static pages sharing one design system, simple enough for a solo practice to hand off or edit later without touching a toolchain.
The hero states the whole premise in one line — “the greatest game to win is the one within” — over a hand-timed SVG animation of a basketball arcing into a hoop, drawn once on load and left to rest. Below it, a four-stop timeline (2015 to now) turns Simone's resume into a narrative: family therapy, inpatient and outpatient care, coaching student-athletes, then building this practice — so a visitor understands why she works the way she does before she ever reads a services list.
A free 15-minute consult, therapy, and life coaching sit side by side as equal, plain-language options rather than a single upsell funnel — each with its own pacing and expectations spelled out, since the two paid tracks work on genuinely different timelines. A federally mandated Good Faith Estimate notice lives on the same page in its own quiet card, satisfying the disclosure requirement without reading like fine print bolted onto a marketing page.
Bio copy written in first person, a chip row that mixes the credential with the human (Texan, Auntie, Retired pro athlete, Ice cream enthusiast), and a goal statement framed as a partnership — “I bring my training, you bring your story” — rather than a clinical mission statement.
Phone, email, office address, and a plain hours table — the page that exists purely to get out of the way once someone has decided to reach out, instead of hiding contact details behind a booking widget.
Spotlights on three organizations Simone works alongside — a fellow therapist's student-athlete nonprofit, the Memphis youth rugby program where her coaching career started, and a friend's basketball-training brand — positioning the practice as one node in a larger community rather than a solo storefront.
The interesting decisions weren't about a backend — there isn't one. They were about how far a single design system and a single afternoon of deployment work could carry a real client deliverable.
Every page shares one styles.css built on CSS custom properties — a court-green-and-gold palette, Fraunces for display type, Inter for body copy, IBM Plex Mono for labels and data. The basketball motif isn't decoration bolted on top: the arc-drawing hero animation, the gold hoop-ring accents, and the “from the court to the couch” timeline framing all point at the same idea, so the athlete-to-therapist story shows up in the visual language, not just the copy.
Before anything went live, the five pages were bundled into a single hash-routed preview page — one file, shareable privately, that a client can click through exactly like the real site with no account and no server involved. It's the fast path to sign-off: catch feedback before the public URL exists, not after.
Five static pages with no database and no uploads don't need a VM. Connected the local repo to a fresh GitHub remote, pushed the site, and turned on GitHub Pages — a public HTTPS URL with zero infrastructure to patch, back up, or pay for monthly. The kind of project where reaching for a Lightsail box would have been solving a problem that doesn't exist.
| Frontend | HTML, CSS, vanilla JavaScript — no framework, no build step |
| Type | Fraunces (display), Inter (body), IBM Plex Mono (labels & data) via Google Fonts |
| Motion | Hand-tuned CSS keyframes for the hero arc, respects prefers-reduced-motion |
| Forms | Contact & newsletter forms are client-side demos — no backend wired up yet |
| Hosting | GitHub Pages, static, HTTPS by default |