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.

clientHair Studio G10 · Jessica Tran · Issaquah, WA
missionneighborhood salon
workingJessica in Issaquah. I was in Los Angeles. Remote.
role2022 storefront, then the 2026 return
window2022 build · 2026 engine
stackwebflow · calendly · brevo · ga4 · gtm
I studied how nearby salons built their sites, then went the other way.
I visited the space and shot the photography myself. I placed an interior shot on the landing page and a portrait of Jessica further down. A new client knows the room and the stylist before they walk in.
I built the page copy around local search keywords. About six months later, Google started sending organic traffic on its own.
Clients book through Calendly. Between November 2022 and 15 October 2026, Calendly tracked 5,238 appointments, roughly $114,450 at menu prices. That is booked value, not collected revenue.
I rebuilt the menu in September 2026 so all 17 services state their price first. I set the footer phone number so it actually dials, and I pointed the social links at live profiles.
I can see the booking button click, but tracking stops at the Calendly window.
captured 2026-08-10 at 1512px, scaled to 900px. the pages as they lived that day, not as they may live now.








One stylist. When I built the site, the salon was one stylist. By 2026 she had a team of three.
The offer. A few years earlier I told her I could start email marketing and social media marketing when she wanted that.
The ask. She held the site for a few years. Then she came back and asked for review replies, then email, then social.
Live replies. I posted owner replies on Google and Yelp. More than 40 are live.
The edit. Below are two views of the same change. About two weeks after my reply, the reviewer moved this Google review from 2 stars to 4 stars. The complaint text is the same. One of 59 tracked ratings moved.
The same edit, shown two ways. 1 of 59 tracked ratings moved.
"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/2022Public reviews. Google: 4.2 stars / 219. Yelp: 3.9 stars / 86. The quotes above are public Yelp reviews, not a quote from Jessica.
Calendly bookings. Clients booked through Calendly from November 2022 to July 2026. Those bookings filled the list.
Findability. Google Business Profile and Google Search helped people find the salon.
Who stayed away. Two of three clients never came back. 1,807 people stayed away six months or more, each with an email still on file.
Revenue. Online bookings hovered around $30K a year for the three years since I set up the site. That is what organic traffic brought in. The owner also takes walk-ins and phone appointments, so the salon's total revenue could not be measured.
The first wave. I split the list before a send. The first wave was 2,225 emails. That wave also wrote to people who were still coming in. 1,807 is people. 2,225 is emails.
the book I had builtResult. 29 appointments from 22 inboxes booked after an email reached them, through 15 October 2026. $874.75 at website prices.
Matched by email address. No control group. Not money collected.
These 29 appointments were logged against the sends: when the email reached the inbox, how long they had been away, and when they booked.
| Service | Appointments | Website price |
|---|---|---|
| Women's haircut | 8 | $199.92 |
| Men's hair cut | 13 | $194.87 |
| Balayage | 1 | $130.00 |
| Color and highlight | 1 | $110.00 |
| Up do | 2 | $90.00 |
| Color highlight | 1 | $79.99 |
| All-Over color | 1 | $39.99 |
| Kids, boy | 2 | $29.98 |
| All 29 appointments | 29 | $874.75 |
| Name | Away | Campaign | Reached them | Booked | Appointment | Service | Website price | |
|---|---|---|---|---|---|---|---|---|
| Name hidden | Email hidden | 1,123 days | Win-back, lost batch 5 | 9 Aug 2026, 10:20 pm | 22 Aug 2026, 3:56 pm | 23 Aug 2026, 10:00 am | Womens Haircut | $24.99 |
| Name hidden | Email hidden | later visit, same person | Win-back, lost batch 5 | 9 Aug 2026, 10:20 pm | 30 Aug 2026, 9:47 am | 31 Aug 2026, 12:30 pm | Color Highlight Service | $79.99 |
| Name hidden | Email hidden | later visit, same person | Win-back, lost batch 5 | 9 Aug 2026, 10:20 pm | 5 Sep 2026, 1:44 pm | 6 Sep 2026, 12:30 pm | Color and Highlight Service | $110.00 |
| Name hidden | Email hidden | 915 days | Back to routine, week 3 | 17 Sep 2026, 3:52 pm | 17 Sep 2026, 4:43 pm | 30 Sep 2026, 5:15 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 868 days | Win-back, lost batch 3 | 7 Aug 2026, 2:20 pm | 24 Aug 2026, 3:26 pm | 24 Aug 2026, 4:30 pm | Kids - Boy | $14.99 |
| Name hidden | Email hidden | 575 days | Friday cuts, lost batch 1 | 2 Sep 2026, 1:07 am | 12 Sep 2026, 5:07 pm | 14 Sep 2026, 12:00 pm | Womens Haircut | $24.99 |
| Name hidden | Email hidden | 531 days | Friday cuts, lost batch 1 | 1 Sep 2026, 11:06 am | 17 Sep 2026, 11:27 am | 18 Sep 2026, 10:45 am | Womens Haircut | $24.99 |
| Name hidden | Email hidden | second person on this email | Friday cuts, lost batch 1 | 1 Sep 2026, 11:06 am | 17 Sep 2026, 11:29 am | 18 Sep 2026, 12:00 pm | Womens Haircut | $24.99 |
| Name hidden | Email hidden | 496 days | Win-back, lost batch 3 | 7 Aug 2026, 2:20 pm | 16 Aug 2026, 9:11 am | 16 Aug 2026, 11:15 am | Kids - Boy | $14.99 |
| Name hidden | Email hidden | 491 days | Win-back, lost batch 5 | 9 Aug 2026, 10:20 pm | 14 Sep 2026, 1:01 pm | 14 Sep 2026, 3:00 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 455 days | Back to routine, week 1 | 14 Sep 2026, 6:18 pm | 1 Oct 2026, 3:36 pm | 2 Oct 2026, 9:15 am | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 398 days | Friday cuts, lapsed | 30 Aug 2026, 9:44 pm | 25 Sep 2026, 2:26 pm | 25 Sep 2026, 5:30 pm | Womens Haircut | $24.99 |
| Name hidden | Email hidden | 349 days | Friday cuts, lapsed | 30 Aug 2026, 9:44 pm | 30 Sep 2026, 10:48 am | 1 Oct 2026, 12:00 pm | All-Over Color | $39.99 |
| Name hidden | Email hidden | 334 days | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 3 Sep 2026, 1:21 pm | 19 Sep 2026, 4:00 pm | Up Do | $45.00 |
| Name hidden | Email hidden | second person on this email | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 3 Sep 2026, 1:24 pm | 19 Sep 2026, 3:00 pm | Up Do | $45.00 |
| Name hidden | Email hidden | 296 days | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 12 Aug 2026, 6:43 pm | 14 Aug 2026, 1:30 pm | Womens Haircut | $24.99 |
| Name hidden | Email hidden | 296 days | Back to routine, week 1 | 14 Sep 2026, 6:18 pm | 11 Oct 2026, 11:48 am | 11 Oct 2026, 1:00 pm | Men's Haircut | $14.99 |
| Name hidden | Email hidden | 278 days | Back to routine, week 1 | 14 Sep 2026, 6:18 pm | 30 Sep 2026, 9:34 am | 30 Sep 2026, 12:15 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 273 days | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 15 Aug 2026, 6:58 am | 15 Aug 2026, 9:00 am | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | later visit, same person | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 19 Sep 2026, 4:27 pm | 19 Sep 2026, 5:45 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 249 days | Win-back, lapsed | 4 Aug 2026, 12:20 pm | 4 Aug 2026, 1:10 pm | 5 Aug 2026, 4:15 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 212 days | Promo launch | 3 Aug 2026, 1:10 pm | 13 Aug 2026, 8:47 am | 14 Aug 2026, 2:45 pm | Womens Haircut | $24.99 |
| Name hidden | Email hidden | second person on this email | Promo launch | 3 Aug 2026, 1:10 pm | 13 Aug 2026, 8:49 am | 14 Aug 2026, 4:00 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 210 days | Promo launch | 3 Aug 2026, 1:10 pm | 6 Aug 2026, 11:45 am | 6 Aug 2026, 5:15 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 190 days | Promo launch | 3 Aug 2026, 1:10 pm | 5 Aug 2026, 9:47 am | 6 Aug 2026, 1:00 pm | Balayage | $130.00 |
| Name hidden | Email hidden | 178 days | Promo launch | 3 Aug 2026, 1:10 pm | 20 Aug 2026, 6:52 am | 20 Aug 2026, 9:00 am | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 170 days | Promo launch | 3 Aug 2026, 1:10 pm | 14 Aug 2026, 9:32 am | 14 Aug 2026, 12:30 pm | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | later visit, same person | Promo launch | 3 Aug 2026, 1:10 pm | 10 Sep 2026, 8:30 am | 10 Sep 2026, 9:45 am | Men's Hair Cut | $14.99 |
| Name hidden | Email hidden | 100 days | Friday cuts, lapsed | 30 Aug 2026, 9:44 pm | 11 Oct 2026, 8:53 pm | 16 Oct 2026, 3:30 pm | Women's Haircut | $24.99 |
| 22 emails, 29 appointments | $874.75 | |||||||
All 29 appointments. Name and email columns blurred.
Placeholder text shown blurred. No client data is on this page.
Public traffic. I took a crawler out of the public traffic numbers. Engagement went down when the crawler left. That is the figure I will defend.
Report the number you can defend. Retire the one the crawler invented.
every figure dated and sourced · booking values are menu prices, not money collected, because the booking tool takes no payment · values use the current website menu, with Up Do at its $45 floor; older bookings are priced at today's menu · bookings are not attributed to my work · crawler-corrected web numbers supersede the 2026-07-31 contaminated baseline · Email open rates include automated opens (Apple Mail privacy, bots) and are upper bounds. The September session figure includes a paid test and is shown both ways.
Studio Lucky Bamboo has done so much for our salon. They built our website in 2022 with online booking, and since then more than 5,000 appointments, over $100,000 at our menu prices, have been booked through it. They answer our reviews on Google and Yelp, including the hard ones, and they emailed our past customers, and some who had not been in for a long time came back. Recently they also ran our Facebook and Instagram ads, and they keep working so people searching for us on Google can find us. They are easy to work with, and they explain everything so I understand.
Jessica, owner, Hair Studio G10, Issaquah WA
You run a salon, and the people who already sat in your chair are sitting on a list. If the site doesn't give them a reason to come back, I'd like to hear about it. Book a free 30-minute discovery call and I'll see if this is a fit.
A therapy site where the light changes as you scroll. Brand, UX/UI, copy and Webflow build, taken from discovery through launch.
A Portland nonprofit's donation path, recovered before Give!Guide season, then monthly WordPress stewardship.
A Portland PR firm's earned media, rebuilt as long-form pages a search engine can read.
dossier held pending client approval
© 2026 jammy phan · jam drop · mission file 002 · hair studio g10
A Measured Test, Then the Shop Window.
The test. One campaign, one ad set, four ads, from 3 to 30 September 2026. 18,746 impressions, 1,058 link clicks, $159.15 spent (final figures, read 6 October 2026). Two bookings carry the ad's tracking tags: a balayage booked 30 September and a men's haircut booked 1 October. At menu prices that is at least $104.99 in services. The balayage is listed "$90+", so the true figure is higher. I do not know what either client paid, and menu prices are not money collected. No tagged booking has come in since 1 October. I count only bookings that carried the ad's tracking, so two is a floor. The campaign ended on its scheduled date.
The shop window. I run Instagram and Facebook on a planned cadence. Every Instagram post has alt text. I review each draft before it goes out. Social is the shop window.