Cleaning Company Website Template
Demo brand: BRISKWELL CLEANING CO. · Contract cleaning · 9 routes · Astro 7 + Tailwind 4
Live preview
The demo is a full desktop site. Open it in a new tab ↗
About this cleaning company website template
A complete lead-generating site for a contract cleaning business: nine built routes covering services, rates, the method, contact and a two-post notes section.
An aqua ground where every colour on the page is one rung of a soil-removal ladder — the surface at residual r, soil over spotless, mixed in linear light. Gabarito against Spline Sans Mono. The palette is the loud channel, and it is derived rather than picked.
The signature move is the sixth pass. Scroll is the pass count, and soil comes off in fractions — r(n) = (1 − k)ⁿ — so five surfaces given the same six passes end in five different places: glazing done at two, grout still short at six. The control is sealed limestone at k = 0.00, a surface the firm refuses to wet-clean: same six passes, residual stays 1.0000.
The 9 pages you get
- Home
/ - The six-pass set-piece, the positioning, the services and the quote close.
- Services
/services/ - Contract, end-of-tenancy, commercial — what is actually offered, and to whom.
- Rates
/rates/ - Published pricing. The biggest conversion lever a cleaning firm has and the one most of them hide.
- The six passes
/method/ - How the work is actually done. It is the page that justifies charging more than the cheapest quote.
- Contact
/contact/ - A working enquiry form plus live tel: and mailto: paths.
- Notes
/blog/ - A wired content collection — add an .mdx file and it appears here and in the sitemap.
- Two worked articles
/blog/… - The second pass is the one that pays, and what an end-of-tenancy argument is actually about. Both are sales arguments in disguise.
- 404
/404 - Designed, not default. Keeps the navigation.
What is in the build
- A scroll-driven six-pass model where soil comes off in fractions, so five surfaces given identical treatment land at five different results
- A declared control: a sealed surface the firm refuses to wet-clean, where six passes change nothing
- Every colour in the build derived as a rung on a soil-removal ladder, mixed in linear light rather than picked from a palette
- A method route, which is how a cleaning firm stops competing purely on hourly rate
- Published rates as typed data
- Gabarito with Spline Sans Mono, both self-hosted; a working enquiry form plus live tel: and mailto:
- Vitest and Playwright suites included in the repository
The design decision
Every template in this catalog is loud in exactly one channel and deliberately quiet in the other three. That single rule is what stops 62 different worlds reading as one design system in different paint.
- The world
- An aqua ground where every colour on the page is one rung of a soil-removal ladder — the surface at residual r, soil over spotless mixed in linear light. Palette is loud; type, imagery and texture held quiet.
- The mechanic
- "The Sixth Pass": scroll is the pass count. Soil comes off in fractions, r(n) = (1 − k)ⁿ, so five surfaces given the same six passes end in five different places — glazing done at two, grout still short at six.
- Loud channel
- Palette
- Imagery. Achromatic, gloss at full
- Type & palette
- Gabarito · Spline Sans Mono
-
#a9f2ed#12160f#12160f - The control case
- Sealed limestone, k = 0.00 — a surface the firm refuses to wet-clean. Same six passes, residual stays 1.0000. Drawn, not labelled.
Who it is for
Built for contract and commercial cleaning companies, end-of-tenancy specialists and facilities firms — and the agencies that build lead-generation sites for trades. It suits an operator who wants to sell a method rather than an hourly rate. The junk-removal, pest-control and moving builds share the structure for neighbouring trades.
Under the hood
- Astro 7 · static output, zero client framework
- Tailwind 4 · one @theme block holds the palette
- MDX content collections for the blog
- GSAP + Lenis for the scroll work, reduced-motion aware
- Self-hosted woff2 — no Google Fonts request
- Sitemap, canonicals and per-route meta wired
- Vitest + Playwright suites in the repository
- Zero third-party requests · strict CSP-ready
How to get started
- 01 Accept the repository invite and clone it.
- 02 Run
npm install, thennpm run dev. - 03 Replace the content in
src/data/with your own — that is where the brand, the copy and every list live. - 04 Swap the images in
public/images/and the palette in the@themeblock. - 05 Run
npm run buildand deploydist/anywhere static.
Questions
Is the six-pass model based on anything real?
It is a standard exponential removal model — each pass takes a fixed fraction of what remains, which is why the last pass never gets you to zero. That is also why the method page is persuasive: it explains, with a drawing, why the cheap two-pass quote leaves grout dirty.
Should I publish rates?
The build assumes yes. In contract cleaning, published rates filter out the price-only enquiries that waste a day quoting. Remove the figures and the page still works as a service list.
Can I use it for a domestic cleaning business?
Yes. The services route is data, and the method argument works just as well for a domestic round. The register is slightly commercial — which tends to help rather than hurt when a homeowner is choosing between three quotes.
What exactly do I get for $49?
Access to a private GitHub repository holding the complete Astro source of this template — every route you see in the preview, the content model, the images and the tests. Updates arrive in that same repository.
How many sites can I build with one licence?
As many as you like, for yourself or for clients. The licence is per buyer, not per project. The one thing you may not do is resell or redistribute the source as a template, theme or starter kit.
Do I need to know Astro?
It helps, but the common case is editing content and colour. Content lives in typed objects under src/data, colour lives in one @theme block, and npm run dev shows the result. Deploying is a static folder — Cloudflare Pages, Netlify and Vercel all take it as-is.
Is anything loaded from a third party?
No. Fonts are self-hosted woff2, there is no analytics, no tag manager, no CDN script and no external CSS. The build ships static HTML under a strict Content-Security-Policy.
More trades & industry templates
KELMER OVERHEAD DOOR
Garage door repair
Loud
Moving set-piece
TORWICK LOCK & SAFE
Locksmith / master keying
Loud
Moving set-piece
KANWICK STEELWORKS
Steel fabrication
Loud
Texture
Crowder Plumbing & Drainage
Plumbing & drainage
Loud
Moving set-piece
HOLLICK & VANE
HVAC contractor
Loud
Moving set-piece