Back to Projects
📦Live

SudsOnWheels USA

Next.js 16+ReactTypeScriptTailwind CSS v4shadcn/uiSupabaseResendCloudflare TurnstileUpstash RedisGoogle Maps APIGoogle Calendar APIVercelGitHub ActionsZodReact Hook Form

SudsOnWheels USA

A marketing-first website with admin CMS for a mobile power washing business in Ashland, Ohio.

Live marketing site with a secure Supabase admin CMS

Built for a mobile power washing business in Ashland, Ohio, this site is a marketing-first lead generator with a hidden admin dashboard for managing leads, services, gallery content, and video embeds. I also set up the GitHub organization and CI/CD workflow so the client can bring future developers into the repo cleanly.

Business Overview

This is not an e-commerce or booking app. SudsOnWheels is a local service business with a strong emphasis on phone, text, and form-based leads. The owner manages residential and commercial service marketing while growing a fleet washing contract with Valley Transportation.

  • Service area: Ashland, Mansfield, Wooster, Loudonville, and surrounding North Central Ohio towns
  • Primary CTAs: call, text, and "Get a Free Quote"
  • No customer accounts, no online payments, no self-service booking
  • Admin CMS is hidden behind Supabase Auth for a single business user

Tech Stack

Frontend

  • Next.js 16+ App Router with src/ directory and @/* import alias
  • Tailwind CSS v4 with shadcn/ui
  • React Hook Form + Zod + @hookform/resolvers
  • next-sitemap for /sitemap.xml and /robots.txt
  • schema-dts for LocalBusiness JSON-LD

Backend / Hosting

  • Supabase Postgres with row-level security and secure storage
  • Supabase Storage for gallery assets
  • Supabase Realtime for admin lead notifications
  • Server-side Supabase service role key only in route handlers
  • Migrations in supabase/migrations/
  • Vercel deploys from main to production and dev to staging
  • GitHub Actions CI on every push/PR to dev or main

Email & Automation

  • Resend transactional emails for lead alerts and confirmations
  • React Email templates for consistent business messaging
  • Automated email workflows for every lead submission
  • DKIM and verified outbound domain setup in Squarespace DNS

Security

  • Cloudflare Turnstile on quote submissions
  • Upstash Redis rate limiting on public lead endpoints
  • CSP headers enforced in next.config.ts
  • Google Maps API key restricted by referrer, API scope, and quota
  • Google Calendar integration to speed owner scheduling and location planning

Application Architecture

Public Pages

  • / — Homepage with services, trust signals, and quote CTAs
  • /services — Service overview
  • /services/house-washing — Service detail
  • /services/driveway-cleaning — Service detail
  • /services/deck-restoration — Service detail
  • /services/commercial-fleet — Service detail
  • /services/[service]/[city] — Local SEO landing pages
  • /gallery — Before/after photo gallery
  • /about — Business story
  • /service-area — Coverage map and city list
  • /contact — Quote request form with Turnstile protection

Admin routes are excluded from sitemap and protected by Supabase Auth.

SEO & Local Visibility

  • LocalBusiness JSON-LD on key pages
  • NAP consistency across site and business listings
  • City landing pages written for local relevance
  • next-sitemap excludes admin routes
  • Google Search Console for crawl monitoring
  • Service-area schema for pressure washing coverage

Operations & Enablement

  • GitHub organization and repo setup: sudsonwheelsusa/sudsonwheels-website
  • Contributor-ready repo structure for future developers
  • Google Workspace configured for business email and service accounts
  • Google Business Profile claimed for local visibility
  • Vercel preview URLs for feature branches and production deploys from main

Launch & Operations

  • Domain: sudsonwheelsusa.com
  • DNS managed through Squarespace Domains
  • Vercel production deploy at https://sudsonwheelsusa.com
  • Google Workspace business email and admin collaboration on external services
  • Google Business Profile claimed as a pressure washing service-area business

Live site: sudsonwheelsusa.com | Repo: github.com/sudsonwheelsusa/sudsonwheels-website