Griffin Renovation website case study
LiveA web-design and local-SEO build for a Cache Valley client, moved off an AI builder into code
Built by Caden Sorenson · Launched March 2026
The project
This is a client project Vient built twice. The brief was a small business site that had to load fast, read well on a phone, and carry clean structured data so it could rank in local search. The first version shipped on the LandingSite AI builder for a quick launch. A few months later it got rebuilt from scratch in code, mostly to take back control of the SEO and drop a monthly hosting fee. The interesting part of this project is that migration, not the storefront it points to.
The build
The rebuild is plain HTML, Tailwind CSS v4, and vanilla JavaScript. No framework, no build step, no npm. Three pages, two JS files, one CSS file.
Key technical decisions:
- Tailwind v4 Browser CDN for styling without a build pipeline
- JavaScript component injection for a shared header and footer across pages without a static site generator, plus a
<noscript>nav fallback so crawlers still see the links - EmailJS for contact form submissions without a backend, with a phone-number fallback if a send fails
- Cloudflare Image Delivery for automatic image optimization and WebP conversion
- JSON-LD structured data with the
HomeAndConstructionBusinessschema type, area served, service catalog, and ratings, so local search has a machine-readable version of the business - Netlify for free static hosting with security headers and aggressive caching
Results
The migration dropped a monthly hosting fee and gave the site the SEO controls the AI builder didn’t expose. The structured data, canonical and Open Graph tags, and a hand-built sitemap give Google what it needs, and the whole thing runs on a free static deploy. The build itself was the interesting problem here.
Build logs: the original build on LandingSite and why I rebuilt it in code.
Frequently asked questions
Does Vient build websites for businesses in Cache Valley and Logan, Utah?
Why was the site rebuilt off the LandingSite AI builder?
How was the website built?
More about Griffin Renovation
- Behind the build Moving a Client Site Off an AI Builder, Rebuilt From Scratch LandingSite AI got Griffin Renovation online fast, but SEO limits and vendor lock-in pushed me to rebuild the whole thing in plain HTML, CSS, and JavaScript.
- Behind the build I Shipped a Client Site in an Afternoon Using an AI Builder A renovation company needed a website fast. I used LandingSite.ai to go from nothing to live in a few hours, and here's what actually worked.
- From the blog Building a Single-Page Client Site, Mostly by Prompting Claude A local client had an Instagram and no website. I gave Claude the prompt, the real details, and a style direction, and it built three files. Content was harder.
- From the blog Building a Local-SEO Site for an Age-Restricted Shop, in Code This Time After rebuilding one AI-builder client site in code, I built this one in Astro with Claude from day one: a clean local-SEO site for an age-restricted retailer.
- From the blog Building a Client Site in Three Files, No Framework A local business had gone four decades without a website. I built one in three files of vanilla HTML, CSS, and JS, then redesigned it around how the shop works.
Related projects
- Related project Cub River Kratom A web design case study: a custom Astro 5 site for a Cache Valley retail client, with one business-data file, local and FAQ schema, and nearby-city pages.
- Related project Diamond Pest Pro A web design case study: a custom Astro 5 site for a multi-location Carolinas home-service client, with a page per branch and service plus LocalBusiness schema.
- Related project Dill the Menace A web design case study: a custom Astro 5 site for a Cache Valley client, with one source of truth for business data, local and FAQ schema, and a static deploy.