InNate Bodywork
InNate Bodywork is Nate Jacob's Salt Lake City practice for pain management, joint dysfunction, and better movement, built around the Hendrickson Method. The old site was a single scrolling page of pricing and a paragraph of credentials, and booking meant clicking off to a third-party scheduler that cost Nate over $700 a year. We rebuilt the site as a proper multi-page experience organized around the six regions of the body people actually search for, and replaced that old booking tool with an interactive flow, built right into the site, where a client picks a service, chooses to pay now or pay later, and books straight into Nate's own calendar.
From the shipped build
Above the fold on desktop with the same phone preview treatment as our homepage carousel, plus the embedded booking calendar in action. Story and stack follow; the outbound link comes once you have context.
About them
Nate Jacob is one of a small group of Utah massage therapists trained in the Hendrickson Method, a gentle, joint-focused approach built on Wave Mobilization, joint mobilization, and Muscle Energy Technique. He also draws on Reflexology and Osteopathic Manual Therapy, choosing technique by the person and goal in front of him rather than a fixed routine.
Clients come in for neck tension, low back and sciatic symptoms, shoulder and rotator cuff pain, hip and piriformis tightness, knee mobility, and elbow or wrist strain, the kind of recurring, specific pain that a generic "relaxation massage" page never speaks to directly.
Sessions run $85 for 60 minutes, $120 for 90 minutes, or a four-session progress series at $432, with the practice recommending 90 minutes for a first visit so there is room for a real assessment.
The fork in the road
The original site was a single page: a short bio, three prices, and a booking link. It worked as a business card, but it gave Google nothing to rank on beyond "massage Salt Lake City," a term every spa in the valley is also chasing.
We could have added a blog and called it done. Instead we restructured the whole site around the conditions Nate actually treats (neck, low back, shoulder, hip, knee, elbow/wrist), because that is how people in pain actually search, and it gives each concern a real page to rank instead of one paragraph competing for everything at once.
What we built
A multi-page site with dedicated routes for the method, six condition pages, an about page for Nate, a resources section, and a booking page, replacing the old one-scroll layout entirely.
The homepage carries the practice's voice ("Not deep tissue. Deeper thinking.") through a horizontal concern picker, a three-step "what a session feels like" walkthrough, and a pricing table that mirrors the real menu instead of a vague "contact for rates."
The booking page is the other half of the story. Before, "Book a session" meant leaving InNate Bodywork's own site for a separate third-party scheduler, a tool that also cost Nate over $700 a year to run. We built an interactive booking flow instead: a client picks Focused, Comprehensive, or the Progress series, chooses Pay Now or Pay Later, and an embedded Cal.com calendar opens right there on the page, already wired to Nate's real availability. Pay Now runs the charge through Stripe without ever leaving the site; Pay Later reserves the slot and defers payment to the appointment.
Why we built it that way
Local wellness SEO rewards specificity. A page titled "Low back & sciatica" earns intent that "massage therapy" alone cannot, and it lets us repeat Salt Lake City, Sugar House, Millcreek, Murray, Holladay, Cottonwood Heights, and Sandy in context instead of stuffing a footer with neighborhood names nobody reads.
We also kept booking one click away from every page. A practice built on trust and comfort loses people the moment "Book a session" is buried below a scroll of credentials, so it lives in the header and reappears at the end of every condition page.
Sending clients to a separate booking vendor also meant a second, unbranded page in the middle of the decision to book, plus a recurring bill for a tool that just held a calendar. Folding scheduling and payment into the site itself removed that hop entirely and cut a cost Nate no longer needed to carry.
Stack and delivery
React with Vite's server components pipeline, deployed to Cloudflare Workers for edge delivery and real, crawlable per-route URLs instead of a client-side-only single page app. Booking runs on an embedded Cal.com instance tied to Nate's own calendar, with Stripe handling Pay Now checkout in the same flow, so scheduling and payment live on innatebody.work instead of a separate vendor's page. Curious what stack fits your practice? Compare platform options or read about our agent-ready approach to structured data for health and local service businesses.
At a glance
Labeled snapshot for quick comparisons: each row echoes the tradeoffs we explain in this case, not a generic stat sheet.
- Business type
- Hendrickson Method massage and manual therapy, by appointment
- Practitioner
- Nate Jacob, advanced massage therapist
- Location
- Salt Lake City, UT, serving Sugar House, Millcreek, Murray, Holladay, Cottonwood Heights, and Sandy
- Pricing
- $85 (60 min), $120 (90 min), $432 for a four-session progress series
- Site structure
- Homepage, method, six condition pages, about, resources, booking
- Booking & payments
- Embedded Cal.com calendar with Pay Now (Stripe) or Pay Later, replacing a third-party scheduler that cost over $700 a year
- Vibe89
- Salt Lake City web design for wellness and local service practices
Decisions worth reading
Tradeoffs we made on this launch, with extra depth without repeating the fork-in-the-road narrative above.
Why split one page into six condition pages?
A single bio page cannot rank for "sciatica," "rotator cuff," and "piriformis" at once without diluting all three.
Six focused pages let each concern speak directly to the person searching for it, with its own explanation of how Nate's approach applies.
Why replace the old booking system with Cal.com and Stripe instead of patching it?
The old tool did one job, hold a calendar, and charged Nate over $700 a year to do it from a page that looked nothing like his site.
Embedding Cal.com and Stripe directly into InNate Bodywork's own pages removed that recurring cost, kept clients on-brand from browsing to booking, and let us design the Pay Now / Pay Later choice around how Nate actually wants to run appointments.
Why React and Cloudflare Workers instead of static HTML like our own site?
Vibe89's own marketing site stays static because our pages rarely change shape.
InNate's condition pages, pricing, and booking flow benefit from componentized templates that Nate's team can extend as new concerns or session types get added, so a React build on Cloudflare Workers traded a little simplicity for real room to grow.
How did we handle the neighborhood and "near me" signals?
We wrote Salt Lake City, Sugar House, Millcreek, Murray, Holladay, Cottonwood Heights, and Sandy into real sentences describing who visits, not a bare list.
That keeps the copy honest about a by-appointment practice while still giving search engines the neighborhood context they look for.
Why keep the pricing table instead of "contact for rates"?
Hiding price is a common way spas nudge people to call, but it also loses anyone comparing options at 11pm on their phone.
Nate's practice already ran on transparent pricing, so we kept it front and center and let the recommendation for a 90-minute first visit do the upselling honestly.
In their words
"I was paying almost $700 a year for a third-party booking tool that still didn't work the way I actually schedule sessions. Now clients pick a service, pay now or later, and it books straight into my calendar. One site does it all."
InNate BodyworkMassage & Manual Therapy · Salt Lake City, UT
See it on their domain
You have the story and captures above. When you are ready, open InNate Bodywork on the public site we shipped.
Open live site InNate Bodywork, opens in a new tab