Squeegee hero
A WebGL window the visitor wipes clean with the cursor, which slowly fogs back over and runs its own squeegee pass when left alone.
SELECTED WORK / CLEANING SERVICES
Eldridge, Iowa · the Quad Cities
A website for a family-owned Quad Cities cleaning crew, built around one idea, dirty to clean: the homepage is a fogged window visitors wipe clear.
Visit live website (opens in a new tab)Explore the project
THE PROJECT
Always Clean is a family-owned cleaning company in Eldridge, Iowa. It handles commercial janitorial work, window cleaning, power washing and deck restoration for businesses and homes across Davenport, Bettendorf and the rest of the Quad Cities.
We replaced the company’s Wix site with a custom website built for two jobs: show the work in a way people remember, and give search engines and ad visitors complete, lightweight pages that lead to a quote request. Old Wix addresses redirect to their new pages, so existing links still work.
DESIGN STRATEGY
The design rests on one idea: dirty to clean. The homepage hero is a window behind fogged glass, and moving the cursor wipes it clear like a squeegee. As you scroll, grime clears off the crew’s photos, bright white sections cut through deep navy ones, and the towns Always Clean serves roll past in large outlined type.
Strict brand rules keep the effects from getting in the way. Each page works as complete HTML first; the motion starts only on capable devices, after a visitor interacts, and never for people who prefer reduced motion.
TYPOGRAPHY
Poppins for headlines and Inter for body text, never the other way round.
COLOR
A bright brand blue against deep-water navy, with orange kept for quote and call buttons, once per screen.
PHOTOGRAPHY
Apart from one licensed photo, every image is the crew’s own work, matched to the service it sits beside.
HOW IT’S BUILT
The site runs on Next.js 16 with React and TypeScript, styled with Tailwind CSS 4. The squeegee hero uses three.js through React Three Fiber, scroll effects use GSAP with ScrollTrigger and SplitText, and Lenis adds smooth scrolling on desktop.
Every page is prerendered and served from CloudFront’s cache. Quote requests are checked with React Hook Form and Zod and emailed through Amazon SES from the client’s own domain.
SEARCH, BUILT IN
The new site gives search engines complete pages for every service and every town the crew covers, with nothing hidden behind JavaScript.
We redirected the old Wix page addresses to their new equivalents with permanent redirects.
Each of the four services has its own page with Service and FAQ structured data, and the FAQ answers are in the page’s HTML rather than loaded on click.
We built eleven city pages, from Davenport and Bettendorf to Moline and Walcott, each with its own services, FAQs and local business markup.
The robots.txt welcomes AI crawlers such as GPTBot and ClaudeBot, and an llms.txt file sets out the services, service areas and key facts for AI answer engines.
Every page is complete server-rendered HTML; the WebGL, animation and smooth-scroll code waits until a visitor interacts, and service pages are held to a set JavaScript budget.

THE SAME WEBSITE. A SMALLER SCREEN.
PROJECT HIGHLIGHTS
A WebGL window the visitor wipes clean with the cursor, which slowly fogs back over and runs its own squeegee pass when left alone.
A comparison slider built on a native range input, so it works with a mouse, a finger, keyboard arrows and screen readers.
The quote form works without JavaScript, records the ad click that brought each visitor and always finishes on a trackable thank-you page.
KEEP EXPLORING
Custom websites, online stores and software built around your business.
A website designed and built around your services and your customers.
Online stores with clear product pages, simple checkout and the integrations you need.
Technical fixes, content and local search that help customers find you.
Your Google Business Profile and local listings, set up for nearby customers.
What clients say about working with our team.
YOUR NEXT WEBSITE
Let’s talk about your business, your customers and what your website needs to do.