A garden sauna at dusk, generated by the pipeline
The Sauna Co · GloucestershireProduct · Pipeline · Site

Somewhere
to disappear.

Send a photograph of your garden. The studio designs a sauna into that garden, and says out loud that it did.

cotswold-sauna.vercel.app · generated image01 / 11
The landing film, early in the scrub
The problemCh 01

Why a bespoke garden building is hard to sell

Nothing bespoke has a price until somebody visits.

So every enquiry costs a site survey, and most of them were never going to buy. Two founders cannot survey their way to a pipeline. The job was never to sell a sauna online, it was to make the visit worth making.

Primary metric · qualified design calls booked

Matt Smith-Wood, design · Harvey Jameson, build02 / 11
RunningCh 02 · the landing film

The frame assembles itself as you scroll.

A timber skeleton becomes a finished building over four screen-heights, tied to scroll position rather than played. Stop and it stops. It is the one thing on the page doing the job a showroom would do.

Moving version · cotswold-sauna.vercel.appcotswold-sauna.vercel.app03 / 11
Frame 1001
Frame 25025
Frame 49049
Frame 73073
Frame 97097
Frame 121121
Frame 145145
Frame 169169
Frame 192192
The filmCh 02 · what it costs

A hundred and ninety-two frames, at four sizes, priced on purpose.

The scrub is paid for once and cached. The four tiers exist so a phone on a train never fetches the 2560 set, and so the weight of the thing is a decision somebody made rather than one that happened.

192frames
800to 2560, four tiers
768files on disk
public/landing/frames-{800,1280,1920,2560}04 / 11
The film/ film
Three steps/ process
It starts with an ordinary garden/ your-garden
What we build/ build
Two founders/ credentials
Examples/ examples
LiveNext 15 · Supabase · Claude · Vercel

One page that has to do a surveyor's first hour.

A scrubbed film, three steps, the studio, the two founders by name, and a wall of examples. Every section is pointed at one action.

Six sections, one primary action05 / 11
The same garden, natural timber
The same garden, charred timber

Same garden, same light. One input changed

Dead endCh 04 · issue #45

The failure that is invisible if you only look

Capacity and light were changing the hash, not the picture.

Every answer produced a different image, so it looked like it was listening. It was not. The inputs reached the cache key and stopped there. A picture that changes is not the same as a picture that responds, and only a sweep of every combination can tell the two apart.

What that bug bought is a 48-frame sweep that runs every form against every finish in every backdrop, so a change that reaches the cache and stops there cannot ship again

test(qa) #44 · fix(render) #4506 / 11
The herohero · what it looks like
The rearrear · what the neighbours see
The detaildetail · the material, close
Top downplan · where it sits in the plot
The anglesCh 05 · one design, four questions

What the chain adds

One answer, seen four ways, because four different people ask.

The buyer wants the view from the kitchen window. The neighbour wants the elevation over the fence. The builder wants the cladding close enough to name. The planner wants the footprint in the plot. Each shot chains off the same design, so they are four views of one building rather than four buildings.

The building stays fixed in place and orientation. Only the camera moves, and no angle may introduce something the hero does not have

src/lib/render/shots.ts · identity anchor + viewpoint07 / 11
The transferable findingCh 06 · BUG-019

Recorded as a pattern, so the third instance is cheap

A guard that bounds one end gets obeyed past the point of sense.

The guardWhat it boundedWhat shipped
Camera move, v5Nothing. No floorThe camera never moved. The second angle was the hero, tighter
Camera move, v6A floor, no ceilingIt travelled so far round that cladding hid the lit interior
Scene size, v6Never the garden biggerIt shrank the sauna past sense in a tight courtyard

The fix is the same every time and costs nothing up front: write both failure sentences before you write the instruction.

“More” reads as “better” to a model.
An unbounded end is an instruction to go further

One shot still has only one end. It is in the list

docs/bug-list.md · 22 entries, 3 still open08 / 11
It starts with an ordinary garden: the photo you send, then two generated designs
The part that is not a featureCh 07

Every generated image says it is generated.

Not in the small print. On the tile, in the product's own type, at the size the picture is. A garden building that does not exist yet is easy to sell dishonestly, and the whole thing is worthless the first time somebody feels misled.

Every site surveyed in person before anything is committed  ·  an indicative band, never a quote  ·  planning and electrical caveats written into the pack, not buried

The label is a product decision, not a legal one09 / 11
Cotswold naturalcotswold natural
Scandi minimalscandi minimal
Modern glassmodern glass
Rustic woodlandrustic woodland
Dark luxurydark luxury
The architectureCh 08

Why it was built this way round

The engine knows nothing about saunas.

Steps, packages and caveats are three config files. recommend() and score() are pure functions that have never heard of a barrel or a cold plunge. Point it at garden rooms, bathrooms or landscaping and you swap the config, not the product.

answers → recommend() + score() → persist, propose, notify → result. The compute is authoritative on the server, so the price band is not something the browser can be talked into

src/lib/engine · reusable  |  src/lib/config · sauna-specific10 / 11
The film, late in the scrub
AttributionDexter Jameson

I built the product.
They build the sauna.

The site, the configurator, the render pipeline and its guardrails, the engine and config split, the film and the bug list are mine. The saunas are designed by Matt Smith-Wood and built by Harvey Jameson, and every photograph of a finished building belongs to them.

There is no outcome number on this deck. The metric is qualified design calls booked, it sits with the founders, and I have not been given one.

01 / 11 A3 landscape · 420 × 297mm