A small site for Somatic Therapy in Lisbon
Building a wellness collective's website in Lisbon — where the cancellation policy matters more than the JavaScript.
A friend asked me about this one over coffee in Príncipe Real. She’d been running sessions out of a shared studio for about a year, and the Instagram-link-in-bio thing was finally starting to creak.
“I don’t want it to look like a startup,” she said. That was basically the whole brief.
STIL is Somatic Therapy in Lisbon — a small collective offering massage, breathwork, reiki, yoga, yoga therapy, somatic coaching, and nutrition coaching. Not one person with a booking calendar. A handful of practitioners sharing a space, wanting one quiet place on the internet to send people to.
What the brief actually meant
Warm. Restful. Trustworthy. Those were the three words she kept coming back to.
I took that to mean: no gradient blobs, no “book a free discovery call” pop-up on scroll, no hero video of someone laughing on a yoga mat. None of the visual shorthand that tells you a wellness brand has been to the same Figma template as everyone else.
It also meant the site had to feel like the room the sessions happen in. Soft light, nothing shouting, nothing trying to convert you.
Typography as the whole design system
Most of the design work happened in the type pairing. Playfair Display for the headings, Inter for the body. That’s almost the entire visual language of the site.
Playfair is a proper serif — high contrast, old-world, the kind of typeface you see on the sign of a place that’s been there a hundred years. Inter underneath it is quiet and modern and gets out of the way. Together they feel like a letter someone took time over, not a landing page someone wireframed. I tried a few other pairings early on — everything else felt either too clinical or too boho. Playfair pulled it into the right room immediately.
The boring pages are the point
The thing I keep coming back to with small-business sites — the unglamorous pages are the ones that actually do the job.
The offerings page — what each session is, what it costs, how long it takes. The cancellation policy, written like a human wrote it, not a lawyer. The gift vouchers page, because she’d been getting asked about it for months. The privacy page, because Lisbon has GDPR and the site takes contact form submissions.
None of those are fun to build. All of them are trust signals. Land on a wellness site with no clear cancellation policy and some small part of you wonders what else they haven’t thought about. The cancellation policy is the JavaScript of a site like this — the thing that has to actually work.
Same stack as Uptown Palmela, different vibe
Under the hood this is the same setup as the Uptown Palmela site — Svelte 5, Cloudflare Pages, Vite + Tailwind. Zero JavaScript shipped to the browser on most pages. Forms that just post to an endpoint. Nothing clever.
I like that the same stack built both. Uptown Palmela is a record label — it wants to feel loud and late-night. STIL wants to feel like a deep breath. The stack had nothing to do with either of those feelings, and that’s the point. Small sites live or die on content and trust, and the framework is mostly irrelevant once you’ve picked a reasonable one.
The fun part of this project wasn’t the code. It was arguing about a single word on the homepage, and whether a photograph should be there at all, and how the cancellation policy should read. More web work should feel like that.
-D