Carson
River Resort
A family resort on the East Fork Carson River since 1920. In six weeks we gave it a website with a point of view, direct booking on its own domain, an office that runs on iPads, email that lands, and a start in local search. We still run all of it.
- Client
- Carson River Resort, Markleeville, California
- What we did
- Diagnosis · Website and design · Alpine booking and point of sale · Email and domains · Local search · Training · Operations
- When
- First commit August 7, 2026 · Live September 18, 2026

The resort
Seven cabins, each named for a piece of local history. Eleven numbered sites on the water that take a tent or an RV, and hookup spaces up top. A general store with ice, tackle and firewood, the last services before Monitor Pass. Elevation 5,530 feet, free Wi-Fi and no cell signal on any carrier.
Founded in 1920; the centennial was held in July 2022, two years late. There is no cabin №1. It burned down. Dogs are welcome everywhere.
“The more you are here, the more you want to be here.”
The owner, to the Record-Courier
The diagnosis
We wrote it down before we built anything. The old site was one long page exported from a design tool. Its HTML had no images, no links and no navigation, so search engines saw the title and nothing else. No description, no structured data. Prices were scrambled in the markup, and the Fourth of July events were still up in August.
Booking meant the phone, a Gmail inbox, or one of at least five separate Airbnb listings for the same seven cabins, each paying Airbnb's commission. The reservation book was a stack of paper registration cards. The resort's name is singular and its domain is plural, so half the directories pointed at the wrong address. Google showed 4.6 stars from 164 reviews, with recent ones waiting for a reply. The resort had never had analytics, so nobody could say how many people looked and left.
All three failures at once: nobody could find it, it didn't take bookings, and it ran on paper.
The research
A place with a century behind it deserves to be written about accurately. Before we designed anything we built a dossier: 21 research files and 25 side studies, on the mining history, the Lahontan cutthroat, the river and its planting records, the fires, the Death Ride, the 1950 census and the Alpine Signal. Then a fact-check of about 130 claims; seven were corrected before launch. When the bronze plaque in Markleeville dated the Great Fire to August 2, 1885, and a source said “the mid-1880s”, the plaque won.
We spent three days at the resort in early September. The owners answered the open questions in person. We photographed every cabin, the store and the river (one panorama of the East Fork is 9,812 pixels wide), and we photographed all 67 registration cards, the entire reservation book. Heenan Lake, up the road, was full of anglers with nobody staying at the resort. So the site got a Heenan Lake page.

The site
The home page changes with the seasons, like a magazine. Each issue gets its own cover and contents, so regulars always find something new. Each cabin carries its own story and its own booking link. And it has the pages people actually need up there: road and river conditions, a fish-planting page that reads the state's feed every day (the planting ledger goes back to 1938), getting here, gift certificates and the dogs policy.
The map is ours, not an embed: river reaches drawn from USGS data on self-hosted topographic tiles, with GPX and KML downloads, and it works with no signal, which is the only kind there is.
The design language is called the Heenan Lake Issue: seven typefaces, three inks (brick, mustard and teal), a paper ground, and a magazine's discipline about what goes where. A gate in the build enforces it, so a page added in a hurry can't drift. Under all of it: a real site map, structured data, a sitemap and a robots file for search.


Alpine
Alpine is the system we built to run the resort: one backend for the cabins, the sites and the store. Guests pick a cabin or a riverside site, see the calendar and prices, and pay the deposit on a secure Stripe checkout, on the resort's own domain. Staff run bookings and the store from iPads. No third-party booking site takes a cut or owns the guest.
Try it yourself: book a cabin at Carson River Resort →
Hookup spaces are still confirmed by phone, on purpose.

The launch
Friday, September 18, 8:01 pm. We pointed the domain at the new site. The certificate didn't issue itself, so we issued it by hand; by 8:22 pm all 54 pages answered and the payment webhook was repointed. Nothing was deleted, so there was a way back. Search Console was verified and the sitemap submitted the same night. Analytics went live at 9:05 pm, on by default with a one-click opt-out in the footer that also honors Global Privacy Control and Do Not Track. The old .net address now redirects to the .com.
The next afternoon, the first paid online booking arrived: a riverside tent site, deposit taken on the resort's own domain.
Search
The morning after launch we audited the Google Business Profile and Yelp. We rewrote the Yelp description, added the RV Parks category, and answered the ten most recent Google reviews and seven on Yelp. The old markup listed store hours as midnight to midnight, which Google reads as “open 24 hours”. Fixed. Google's “people also search for” showed what was missing, so we built a rates page and a reviews page the same day.
Rankings take months, and we don't predict them. We report them to the resort as they come.


Nine addresses on the resort's own domain: five mailboxes and four shared ones, for booking, the store and the owners. Sending is authenticated (SPF, DKIM and DMARC) so confirmations and receipts land in the inbox, and a mailing list with double opt-in is ready for the season announcements. Before this, the resort answered from a personal address through a forwarding rule.
Training
An illustrated staff manual, The Office: 13 chapters and 58 figures, readable offline on the iPad. Staff had the store iPad in hand on the morning of launch day.
Speed and testing
We test cold loads on a throttled mid-range phone on slow 4G, not on our laptops, because that's what a guest has in the car below Monitor Pass. The first pass took 2.3 seconds off the largest paint on mobile.
Every change runs through eight gates before it can reach the resort: types, lint, a census of the content, 1,417 unit tests, derived files, the build, 313 browser tests and a set of guards, one of which checks all 3,790 internal links. Small-business sites almost never have this. Ours do.
Running it
We didn't hand it over and leave. We host it, keep it updated and change it as the seasons change, on our monthly plan. The home page is an issue; a new one goes out with the season.
Start
See it live at carsonriverresorts.com. Then send us the address of your site and what it should be doing that it isn't.