Battle On Therapy
A therapy site where the light changes as you scroll. Brand, UX/UI, copy and Webflow build, taken from discovery through launch and handoff.
website + marketing operations · hair salon · issaquah, wa · 2022 → 2026
Hair Studio G10 had a decade of goodwill, a website that worked, and a flat revenue line around $30K a year, because two of three clients never returned. Studio Lucky Bamboo built the site (five pages, one design language, a serif system that puts exactly one word in italic per headline) and then built the salon a marketing operating system on top of it: segmentation, a win-back email architecture, a governed content engine, a brand system, and an analytics stack. The leading indicators are live. The revenue chapter is being measured next. The site is live at hairstudiog10.com.
A family-owned salon, and the family is ours: the owner is the founder's aunt. Run and measured like any client account, which is why the numbers below are real and dated.






every number on this page is a leading indicator with a date window · revenue attribution is the next chapter, and no revenue claim is made anywhere in this file
Three and a half years of booking data (Nov 2022 to Jul 2026): 2,235 unique clients, 4,846 bookings, roughly $105,828 lifetime at base menu prices, and a 32% return rate. Revenue plateaued at about $28.9K in 2023, $31.7K in 2024, $30.7K in 2025. Haircuts were about 92% of bookings; color, the highest-margin service, sat near 9%. Tuesdays and Wednesdays ran slow; Sep to Nov and February were the soft months. And 1,807 past clients hadn't been back in six months or more, every one with an email on file.
transmission · the diagnosis that set the engagementThis salon did not have a traffic problem, it had a retention and reactivation problem.
Success was defined up front as three goals, before any campaign went out: win back lapsed clients, fill the slow midweek, grow the color mix. Every layer built afterwards answers to one of those three.
The site itself was not the bottleneck, but it had bottlenecks in it. The footer phone number was rendered as href="#" rather than a tel: link, so a mobile tap jumped to the top of the page instead of dialing, on a site where 44.7% of sessions are mobile (4,365 of 9,764). On the booking page, one social icon showed the Yelp logo and linked to twitter.com, and the salon's real Instagram wasn't linked from the site at all.
| the book | 2,235 unique clients, 4,846 bookings, Nov 2022 to Jul 2026. 32% ever returned. |
| the plateau | About $30K a year, three years running, at base menu prices. |
| the mix | Haircuts ~92% of bookings; color, the highest-margin service, near 9%. |
| the lapsed pool | 1,807 clients absent six months or more, every one with an email on file. |
| the storefront | The 2022 site, live and working, with a dead phone link in the footer and a mislinked social icon on the booking page. |
The relationship started with the website, not a retainer. Studio Lucky Bamboo built hairstudiog10.com in 2022 (domain registered 2022-09-24) and has maintained it since. [The site began as a purchased Webflow template, customized and personalized into the salon's own.] What shipped is five pages on a Webflow component system, with combo-class nav variants, a Style Guide template page, and CMS collections for artists and testimonials.
When the site's computed styles were inspected across seven live pages and sections in July 2026, they came back as a real system: a 1234px container; Playfair Display for all display type at weight 400 (90px h1, 85px section heads, 48px service heads); Open Sans for everything else (18px on 32px leading, nav at 14px semibold); a narrow palette of near-black #202020, cream #F6F1ED across most of the surface area, white cards, a lavender band reserved for the artists section, and one rose accent #D1496F on every primary CTA and star rating sitewide. Heroes are full-bleed photography under a 50% black scrim. Buttons are square, border-radius: 0. The accent is governed by contrast math, not taste: rose on white measures about 4.3:1, so it appears only as a filled button with a bold white label, never as small running text, on a documented 70/25/5 neutral/type/accent split.


The strongest component is the service module: a numbered eyebrow, a hairline rule, a serif heading, body copy, an actual price table, then a booking link, with the image alternating left and right down the page for editorial rhythm. It answers what it is and what it costs before it asks for the booking. Mobile is handled rather than tolerated: a full-screen dark nav overlay with Playfair links and a full-width rose CTA. Both run large in the proof section below.
Five connected layers, built in sequence, each answering one of the three goals.
| 1 · segmentation | Active 266 / Cooling 162 / Lapsed 310 / Lost 1,497, plus 1,960 cut-only clients who've never booked color; the 53-day median visit gap sets the rhythm. |
| 2 · win-back email | The 1,497-client Lost segment split into five daily batches around the platform's 300/day free-tier cap, every link UTM-tagged, every send logged. |
| 3 · content engine | Weekly four-post cadence, monthly email cadence, written alt text on every Instagram post (policy since 2026-08-03), a consent-cleared library of about 219 real client photos (owner approval 2026-07-31), and a human review gate on every draft, so nothing auto-publishes. |
| 4 · brand system | The website system, written down so future site work extends it instead of drifting from it, plus a separate Salon Interior Kit (Playfair Display with Lato, wine accent sampled from the salon's own wall) canonical for marketing material. Two kits, scoped on purpose. |
| 5 · analytics | The site's existing, unmanaged analytics adopted to preserve about 10 months of baseline; an 11-tag container with custom booking-intent and phone-click events; a live dashboard since 2026-08-04. When the container was accidentally published empty on 2026-07-31 and tracking went dark for about a week, the stack's own anomaly alert caught it; fixed 2026-08-10, verified live by direct fetch, documented with a correction notice. |



The storefront, kept working. Owning the build means owning the maintenance. 2026-08-03: the footer phone link corrected from href="#" to tel:+14253916887, verified live by direct HTML check, with no invented "lost calls" figure attached to it, only the denominator (44.7% mobile). 2026-08-03: the hardcoded analytics snippets removed from the Webflow head code and replaced by one tag-management container, confirmed by direct fetch. 2026-08-10: the three social icons on the booking page repointed to the real Yelp listing, Facebook Page and Instagram, opening in a new tab, with the edit scoped to the page's distinct "Nav Bar White" combo-class variant rather than pushed through the shared component that would have modified eight instances.
transmission · method moment · the booking flow we could not measure, and refused to fakeBooking runs as an inline Calendly iframe. Clicks inside it are invisible to the parent page by design.
The tempting move is to claim attribution anyway. Instead booking_intent was redefined as something observable: arrival on the booking page, plus a booking_cta_click event, plus a vendor-agnostic postMessage listener so the instrumentation survives a change of scheduling vendor. The owner decided on 2026-08-07 to stay on Calendly. One item stays open and is stated as open: UTM passthrough into Calendly is still unverified.
The reusable rule it became: redefine the metric to something you can actually see, then say out loud what you still can't.
Revenue attribution is the next chapter, and no revenue claim is made here. What follows is the record as it stands, dated, checkable, in order.
| 2022-09-24 | Domain registered; the five-page site built and published, and maintained continuously since. |
| 2026-07-23 | The site's design system documented from its own computed styles across 7 live pages and sections, so future work extends one system instead of guessing at it. |
| 2026-07-29 | First campaign out: Active segment, 42.13% open (107/254 delivered). |
| 2026-08-03 | Footer phone link fixed to a real tel: link, verified live (44.7% of sessions are mobile). Hardcoded analytics snippets replaced by one managed container. Custom booking-intent event tracking built. Cooling segment campaign: 40.51% open. |
| 2026-08-04 to 08-09 | The Lost segment worked in five daily batches; per-batch opens 8% to 25%, meaning hundreds of clients absent a year or more re-opened a message from the salon. |
| 2026-08-09 | Win-back pool substantially complete: 1,797 of 1,807 reached. Running totals: 2,225 emails, 8 campaigns, blended 21.4% open / 1.2% click / 3.6% bounce (sender-domain authentication still completing). |
| sep 2025 to jul 2026 | Web recap: 9,764 sessions, 7,540 visitors, 71.9% engagement, 44.7% mobile; the booking page's share of sessions rose from 27% to a consistent 36% to 38% since January 2026. |
| jul 2026 | Live dashboard: 1.3K sessions (+6.0% vs June), 75.3% engagement. |
| 2026-08-10 | Tracking outage found, fixed, verified, documented. Placeholder social icons on the booking page repointed to the salon's real profiles. Key-event data accumulates from here. |
No quote from Jessica is on file. This slot stays visibly empty until she gives one. Nothing here is invented, and nothing will be.
The ledger and the owner's account are a pair. One does not stand in for the other. An empty quote card is acceptable here; an invented one is not.
When it lands, it runs as Jessica's words, unedited; as disclosed above, she is the founder's aunt, so her quote runs with that context stated.
No laptop shells, no floating phones, no perspective angles. Everything below is the live site or the live reporting stack as captured on 2026-08-10, nothing retouched, with the awkward parts captioned instead of cropped.






"The owner, Jessica, is a magician with scissors! She suggests things that work for your hair, facial structure, and lifestyle."
patricia l. · 5 stars · public yelp review · 5/17/2025"Jessica always answers the phone (day or night) and somehow manages to fit me in every time. Highly recommend!"
alex s. · 5 stars · public yelp review · 8/19/2022reputation base, stated as context not conquest: 4.2 stars / 219 google reviews · 3.9 stars / 86 yelp
Campaigns: the two built campaigns go out on their windows (midweek treatments, Aug 14 to 15; Sunday facial, Aug 21 to 22). Sender-domain authentication completes. Booking-intent key events, live since 2026-08-10, begin accumulating attributable conversion data. The SMS layer opens next: 92% of the client list has a phone number on file.
Site, and this list is ours to answer for because it's our build. The highest-intent page is the least-designed one: the booking page is the shortest page on the site, uses a different header treatment from every other page, and its scheduling widget still carries the owner's personal name rather than Hair Studio G10. Meet the Artists promises artists plural and delivers one card, with tabs labelled by service category rather than by person. The homepage duplicates the services section wholesale, byte-identical copy and pricing, which is a design repetition and an SEO duplication problem at once. The site has no forms at all and no mailto link, so an interested visitor who isn't ready to book today has nothing to do but leave. Smaller and equally real: a dead nav button on the booking page itself, Search Console never verified, and 15 of 22 homepage images with no alt text. Each of those has a known fix, which is why they're printed rather than quietly queued: rebuild the booking page on the system the rest of the site already runs on, build the artists page around people, resolve the duplicated section to one canonical source, and give the mobile majority a low-commitment capture form.
Follow-up chapter committed: the first revenue-impact read, published after the win-back cohort's rebooking window closes.
A therapy site where the light changes as you scroll. Brand, UX/UI, copy and Webflow build, taken from discovery through launch and handoff.
A short list on purpose. One flagship studied in depth beats a wall of thumbnails.
mission file 002 · hair studio g10 · post-flight report filed 2026-08-11 · jam drop