Why a second site at all
Somebody in Brainerd searching for a web designer is not searching the way somebody in Minneapolis is. They are typing the town name, they want to know what it costs before they call, and a page that lists forty service areas reads to them as a company that is not really here.
So this is not a landing page bolted onto my main site. It is its own domain, its own design, its own copy, aimed at one market. A page that talks to one town beats a page that mentions thirty.
What is actually on it
Six pages: home, pricing, work, about, a plain-English guide, and contact. The pricing page is the point of the whole thing. My rate is on it, the hours each kind of job takes are on it, and the arithmetic is shown rather than summarized, because the single most common reason a small business owner does not call a designer is that they have no idea whether the answer is $400 or $4,000.
The guide exists for people who are not ready to hire anybody. It answers the questions I get asked on the phone, in the order I get asked them.
Built to look like nothing else I own
This is the part that took the real work. It shares no stylesheet, no class names and no components with my main site. Pine green and lake aqua instead of bone and navy, Bricolage Grotesque instead of Instrument Serif, a topographic contour motif instead of the flat panels, and a light and dark theme of its own.
That is deliberate and it is not cosmetic. A group of local sites that are the same template with the town name swapped is a pattern that is obvious to anyone who looks at two of them, and I would rather build the second design than explain the shortcut. If I build a third, I will draw a third design rather than parameterize this one.
The unglamorous parts
The whole site is static files generated by a small Python script with no dependencies at all. Six source fragments go in, six pages and a sitemap come out. Nothing to update, nothing to get exploited, and it deploys from a push.
The contact form was the fiddly bit. On my main site, enquiry notifications were landing in Spam, because the message quoted a stranger's text and carried a stranger's reply address on mail sent from my own domain, which is exactly what a phishing attempt looks like. This form does not do that. It carries a fixed subject tag and its own header instead, so the notification is identifiable no matter what somebody types into it.
What I cannot tell you yet
Whether it works. It went live in August 2026 and local search results take months, so any number I quoted here would be invented. When it has ranked or failed to rank, this paragraph gets rewritten with the real outcome.

