Case study · Product design
ThermAtlas
A discovery and review app for sauna and cold plunge facilities, built around the exact criteria enthusiasts use to choose where they sweat and chill.
Role
Design + full-stack build
Type
Directory web app
Focus
Discovery & reviews
Status
Live

The problem
Regulars choose saunas and cold plunges on cleanliness, heat, and vibe, and no map or listing surfaces any of it. I was one of those regulars.
What I did
Interviewed eight practitioners and turned their criteria into the product's filters, designed and tested the interface with five more, then built and launched it myself: Supabase backend, dedupe pipeline, security pass, SEO, metro-by-metro rollout.
What came of it
A live directory of 281 facilities across 11 metros, with reviews and check-ins, and about thirty shipped iterations in the first month.
The context
I built the thing I kept wishing existed.
Thermaculture is simple to describe and addictive to practice: a hot sauna, a cold plunge, and alternating between the two until body and mind both feel it. Studios have opened all over the country, and every one has its own heat, its own plunge and its own culture, which is exactly what makes choosing between them hard.
I'm not a neutral observer here. I'm one of the eight. I've stood dripping in a parking lot in a town I was passing through, phone out, trying to work out whether the sauna down the road runs hot enough to be worth the detour, and come up with nothing useful. ThermAtlas started as my own itch: the tool I wanted every time I traveled, and every time a friend asked me where they should go.
So the research that follows wasn't fieldwork on strangers. It was me sitting down with my own tribe and asking them to say out loud what we all already weigh in our heads. And the obsessive data work later on wasn't box-ticking. It was a regular refusing to let his own directory lie to the next person standing in that parking lot.
The problem
Finding the right facility is not straightforward. Enthusiasts have particular criteria they weigh, and the typical discovery tools (a quick map search, a generic listing) rarely surface that information. People were making decisions with the wrong data, or no data at all.
Research
I went straight to the regulars.
I sat down with eight fellow regulars to understand, from the inside, how they search for and commit to a facility.
I focused on which factors of a facility matter most to them, and how those factors show up at the moment they decide to pay and book a session.
What I learned
Two themes ran through every interview.
One was about what makes a facility worth it. The other was about how people even find one. Both pointed at the same gap.
The strategy
Generic tools bury the things that settle the decision. ThermAtlas does the opposite. A regular should be able to judge a facility the way they judge it in conversation, at a glance, so the criteria people named in interviews became the literal spine of the interface. Every screen and filter earns its place by answering one of their questions, and every iteration that came later had to protect that clarity rather than clutter it.
Design
From sketches to screens.
Low-fidelity wireframes first, to feel out the flow and make sure the criteria practitioners care about surfaced early instead of buried. Then a brand grounded in five values (authenticity, expertise, community, clarity, trust), and high-fidelity screens that lean hard into the nuances regulars care about, so a decision can be made at a glance.

Low-fidelity wireframes first: the core screens and the filtering flow, before any styling.

High-fidelity screens: nearby facilities, preference filters, map and list views, profile, and review flow.
Usability testing
Testing with five practitioners.
I tested the high-fidelity prototype with five sauna and cold plunge regulars, using a guide built around the core journeys. I gave light prompts, then listened as they worked, asking about their thinking at each step to find the spots that confused them.
Synthesizing the sessions led to a few meaningful changes, each one pulled straight from watching people hesitate:

The part most designers skip
Then I built it, and shipped it.
I didn't stop at a prototype. I rebuilt the product from my designs and launched it as a live directory of saunas, cold plunges, and bathhouses, with a real backend, real data, and real users.
Research, brand, interface, database, security, SEO, content, and the ongoing upkeep, all of it me. No team, no handoff, no engineer to catch the parts I hadn't thought through. When you own every layer, a design decision has to survive contact with real Postgres, real users, and real edge cases, not just a tidy frame in a design tool.

A closer look
Keeping the directory honest as it grows.
A directory is only as trustworthy as its worst listing. As facilities and photos arrived across every metro, generic and duplicated stock images started creeping in, quietly eroding the honest at-a-glance read the whole product depends on. So I ran a database-wide scan, saw the scale of it, and built a tiered cleanup to drive it out carefully, without deleting a single real photo.
That same care shaped the public rollout. Each metro launched as its own page, filtered, mapped, and curated, and only went live once its listings were clean.
Iterating in the wild
Launch was the midpoint, not the finish line.
A live product with real users behaves nothing like a prototype. Over a single month I ran close to thirty documented passes across layout, photography, data integrity, discoverability, and search. None of it was cosmetic churn. Every pass protected the same thing the research pointed at from the start: a clear, trustworthy decision, made at a glance.
Running it
Then I kept it running.
Shipping made me the designer, the developer, and the person on call. In the three weeks before the public launch I ran ThermAtlas the way a small product team would: a review step before anything reaches the live site, a security audit, a performance pass, and a second look at every lead photo in the directory.
Three weeks of operations
Ten reviewed releases, each one small enough to undo.
10
releases in three weeks
½
the homepage data, 860KB to 410KB
42
of 276 lead photos replaced
1 · Build
Lovable
2 · Stage
Dev branch
3 · Review
Pull request
4 · Approve
Main
5 · Live
Vercel
Every change now passes a review step on its way to the live site. Before this, a change could ship unreviewed.
Security
An audit found two critical issues. Both were fixed and shipped the same day, and known dependency vulnerabilities went from 22 to 8.
Speed
Homepage data cut from 860KB to 410KB, the map code loaded only when someone opens the map, and the lead image trimmed from 319KB to 89KB.
Photo review
I built a tap-to-flag review board and looked at the lead photo of all 276 facilities. 42 were replaced and four galleries rebuilt from the facilities' own sites.
A new home
The product moved to thermatlas.com with no downtime. Every old link still lands on the right page, in a single hop.
A weekly routine
Every Sunday a scheduled task reads the live directory, drafts three social posts, and emails them to me to edit. The drafts start from real listings, never from a blank page.
None of this shows up in a screenshot. All of it decides whether people can trust what they see.
The live product
281 facilities, live and growing.
A few screens from the shipped product.




The outcome
From prototype to a live product.
The work shipped as ThermAtlas. The visual language kept evolving past the prototype shown here, but the spine held: surface the criteria practitioners actually use, and let them decide with confidence.
Still live, still growing, still mine to tend.
Reflection
What I took away.
01
The project is never really done, and that's the point. Feedback from real users is what turns something usable into something genuinely good.
02
Designing for a tribe who care deeply about an activity is a gift. Their expertise hands you sharp, specific problem spaces to solve.
03
Chasing perfection slows you down. I did better by solving specific pain points and getting feedback early and often.
04
Building it myself made me a sharper designer. When you ship the thing, every decision has to survive real data, real security, and real users, not just a tidy prototype.
Want to build something kind?
Visit the live app →