All websites
Gutter-It LLC

From a half-finished Wix site to a brand-matched site that books jobs.

Jakob's seamless-gutter business had a Wix site that didn't match his brand and didn't sell. We rebuilt it as a fast, custom 5-page React site — plus a one-time Google Business Profile setup so prospects can actually find him.

React 18ViteTypeScriptTailwind CSSReact Router v6Radix UI
From a half-finished Wix site to a brand-matched site that books jobs.
5
Pages, fully custom
100%
Brand-matched palette
GBP
Google Business Profile setup
TN
Chattanooga, local

Where we started

Jakob runs Gutter-It, a seamless-gutter business in Chattanooga — cleaning, repair, installation, and pressure washing. He had a real brand: a clean shield logo, a navy-and-sky-blue color palette, a printed banner with three crisp value props. None of that made it onto his website.

His Wix site was a flat list of four services on a solid blue background — "Gutter Cleaning · as low as $100 · Book Now" repeated four times, with a typo on "Pressure Wahsing." Below that, a generic "Our Commitment" paragraph. No hero. No real about page. No trust signals. No SEO. Nothing that told a prospect why they should call Jakob instead of the next gutter guy on Google.

The old Wix homepage for Gutter-It — a centered shield logo and a generic "Enhancing Your Home's Value" block, with no trust signals or call-to-action above the fold.

The old Wix services page for Gutter-It — a flat blue price list of four services with a typo on "Pressure Wahsing."

What we built

  • Five-page custom site — Home, Services, Gallery, About, Contact — built in React with Vite, fully typed in TypeScript, and styled with a custom Tailwind palette pulled from his existing brand (navy, sky, amber, electric blue, cream).
  • Real service detail — replaced the four-line price list with proper service cards: what's included, what it costs, clear CTAs. Pricing stays up front so callers self-qualify before they pick up the phone.
  • Trust signals on the hero — "Chattanooga · Family-Owned" eyebrow, licensed & insured, free estimates, and a 5-year workmanship warranty all visible without scrolling.
  • Accessible components — Radix UI primitives for the FAQ accordion and base components, so keyboard and screen-reader users get a working site, not an afterthought.
  • SEO baked in — every page is pre-rendered to its own static HTML file at build time, so Google, Bing, DuckDuckGo, and Apple all see the full content on first crawl with zero JavaScript required.
  • Google Business Profile — one-time setup of his GBP: categories, service area, hours, services, photos, and the basics that decide whether he shows up in the local map pack.

The stack

  • React 18 + Vite + TypeScript — fast dev loop, strict types, no surprises in production
  • Tailwind CSS with a brand-matched palette so the site actually looks like Gutter-It, not a template
  • React Router v6 for the five pages
  • Radix UI for accessible accordion and base primitives
  • react-helmet-async for per-page SEO + JSON-LD
  • Lucide React for icons

How we made it findable

A pretty site that no one can find isn't worth much. Most React sites are single-page apps — when Google crawls them, the raw HTML is essentially empty until JavaScript runs, which means slower indexing and other crawlers (Bing, social previews, AI agents) often see nothing at all. We didn't ship Jakob a site like that.

Every route is pre-rendered at build time/, /services, /gallery, /about, and /contact each get their own static .html file with the full content already in the markup. Google sees the page on first crawl with no JavaScript required, and so does every other crawler.

On top of that:

  • Per-page metadata — unique <title>, meta description, and canonical URL for each of the five pages
  • LocalBusiness JSON-LD schema — name, address, phone, hours, service area, and the four services all marked up so Google recognizes Gutter-It as a real local business entity
  • Local keyword copy — Chattanooga plus all ten surrounding Hamilton County towns named in the body so the site shows up when prospects search nearby
  • Image alt text on every photo so they're indexable in Google Images
  • Auto-generated sitemap.xml + robots.txt submitted to Google Search Console

That's the website side handled. The other half of local search is the Google Business Profile — categories, service area, hours, photos, and the basics that decide whether a business shows up in the map pack when someone Googles "gutter cleaning near me." We set Jakob's up as a one-time engagement; from here, the website and the GBP work together.

The result

A site that matches the brand on Jakob's banner, loads fast on a phone, and tells prospects exactly what they're buying before they call. Paired with a real Google Business Profile, he now has the two things a local trades business actually needs to grow: a site that closes, and a listing that gets found.

The new Gutter-It homepage hero — "Enhancing your home's value, one gutter at a time" with brand-matched navy and sky-blue palette, call-to-action, and phone number above the fold.

The new Gutter-It services page — proper service cards for gutter cleaning, repair, installation, and pressure washing with descriptions, what's included, and clear pricing.

Have a similar problem? Let’s talk.

Start a project