The thing everybody gets wrong about resort businesses
A resort, an outfitter or a lake bar earns most of its year between Memorial Day and the first week of October. The bookings that fill those months are made in February and March, from a laptop several hundred miles away, by somebody comparing three places they have never been to.
So the earning months and the buying months barely overlap. Almost every small business website is built as though they do. That mismatch is the entire premise of this site, and the home page opens with a twelve month strip showing it, because it is faster to see than to read.
What that changes about the build
A site for a seasonal business has to keep selling while the business is shut. The worst thing it can do is read as closed in January, which is exactly when next summer is being planned. So the pages are built to hold rates, dates and a booking enquiry for a season that has not started yet, and to say plainly what is open and when.
Five pages: home, rates, a page on how seasonal sites differ, about, and contact. The rates page shows the hourly arithmetic the same way my other sites do, with a note about booking the build in March rather than the week before the season starts, because a site delivered in June has already missed most of what it was for.
A fourth design, verified rather than assumed
This is the third local site I have built, and it shares zero class names with the second one. I checked that with a diff rather than by eye, because two sites can look different and still be the same document underneath, and the DOM is what gives a template farm away.
Dusk plum and rust on warm bone, Fraunces and Karla, squared corners with hard offset shadows, and a low sun motif that belongs to a lake in October. The only line the two stylesheets have in common is a generic reset.
The bug worth writing down
The social card rendered in the wrong typeface and nobody would have noticed from the code. Fraunces installs under the family name "Fraunces 144pt", so asking for "Fraunces" in an SVG silently falls back to a default sans and still renders a perfectly clean image at the wrong width.
Nothing errors. Nothing logs. The only way to catch it is to look at the finished picture, or to check the font name resolves before you render anything with it. I now check that every time, on every project, because a silent fallback that produces valid output is the worst kind of bug there is.

