Skip to content
Work · Case Study

Off WordPress in seven days.

A licensed Bandon landscape-care and home-repair contractor, rebuilt from the ground up. Six service pages instead of one, and no framework or plugin JavaScript on any page.

SeaBreeze Landscape Care and Home Repair, Bandon Oregon: coastal logo in cream and teal on a deep green field.

SeaBreeze is a licensed general contractor, landscape contractor and pesticide operator working Bandon and the South Coast. Stacy Winters founded the LLC in 2023 on the back of thirty-plus years of building, landscaping and repair, and the crew does everything from monthly lawn care to full remodels. Stacy is my dad.

The old site was WordPress, and it had the problem almost every contractor site has: one page called Services with everything on it. Landscaping, decks, drainage, remodels, gutters, hauling, all in one list. A page like that can only ever rank for one thing, and it is usually the wrong thing.

The rebuild took seven business days from kickoff to live and produced fourteen pages, six of which each own a single service and nothing else.

7 business days, kickoff to live
6 service pages, one per trade
46 real job photos, no stock
2 outside scripts, both Cloudflare

The build

Scope
Full site for a Bandon landscape-care and home-repair business. Services, project photos, a service-area map, and a spam-guarded contact form. Built in 7 days from kickoff to live.
Result
Live and mobile-first, with Lighthouse and an A+ security grade both measured live on the wall.
Stack
Astro · Tailwind v4 · Cloudflare Pages · Turnstile-guarded estimate form · no framework runtime served

Six pages instead of one

Somebody with a flooded side yard does not search for a contractor. They search for drainage, in the town they live in. Somebody whose deck is going soft searches for decks. Those are different people with different problems, and a single Services page has to try to be the answer to all of them at once, which means it is the best answer to none of them.

So the site has six: landscaping, home repair, property maintenance, remodeling, decks and fencing, and drainage. Each one is a full page about that one job, at a URL that says what it is, with photos of that work and its own way in to a free estimate. The Services page still exists and still lists everything, because a visitor who does not know what to call their problem needs somewhere to browse. It just is not carrying the whole building any more.

The gallery does the selling

A contractor's website has one job that no amount of copy can do, which is to prove the work is good. So the gallery is not a decoration on this site, it is the argument. Forty-six real job photos, sorted into landscaping, construction, decks and fencing, drainage and a featured set: an arched gate, a golf simulator built into a shed, a putting green, a cedar raised bed, a hillside drain line in the trench before it was covered.

Every one is their own work on a real South Coast property. None of it is stock, and none of it is a photo of somebody else's job. That rule is not negotiable on anything I build, and on a trades site it is also the entire point.

What the pages do not load

Across all fourteen pages the site loads no framework or plugin JavaScript. The only outside scripts are Cloudflare's own: the Turnstile spam check where there is an estimate form, and the page-view counter. Everything else the site does, it does with the HTML and CSS it already sent.

That is not a stunt, it is what removing WordPress buys you. No plugin stack, no jQuery, no page builder loading its own runtime to every visitor. Photos load as WebP at the size the screen actually needs. The result is a contractor site built to open fast on a phone with two bars in the Coquille valley, which is where most of these visitors are.

The security grade is A+ on Mozilla Observatory and the Lighthouse numbers are measured live, not quoted from a screenshot. Both are on the wall.

Custom websites and apps for Oregon coast businesses, built in Bandon. Sites from $1,750, starting at 3 business days. One text gets it started.

I answer my texts within a few hours during business days.

Consult policy
  • Bandon: free in-person or video
  • Coos & Curry counties: free 30-min video
  • In-person up to 1.5 hours away: $250 deposit, credits to project on signing
  • In-person up to 2.5 hours away: $400 deposit, credits to project on signing