SK 26
Menu

Case 01 / 06

Live

Stain
Busters

A carpet, sofa and car cleaning business in the Klang Valley needed one page that answered four questions and started a WhatsApp conversation with enough detail to quote.

Role
Designer and builder
Year
2025
Stainbusters homepage: a cleaner in orange workwear beside a van, with the headline No Stain Survives.
Homepage, captured 27 October 2026.This plate shows the service promise and the WhatsApp handoff. The estimator is described below.

The job

A carpet cleaner needed one page that answered four questions: what do you clean, where, how much, and how do I book?

The move

One page with services, service areas, a WhatsApp action and an office price estimator. The estimator turns square footage and add-ons into an estimate, then writes that estimate into the WhatsApp message.

The commercial job was not to close a sale on the page. It was to start a WhatsApp conversation with enough information for the business to quote accurately. The page carries the same action in the header, after the estimate and at the end — not because repetition is a style, but because the decision can happen at any of those points.

The decision

  • Ask four questions, not ten. Every extra field is a place to leave.
  • Put the action where the customer is, rather than sending them back to a contact page.
  • Make the estimate useful without pretending it is a final quote.
  • Let the WhatsApp message carry the answers, so the next step does not start from zero.

The limit, stated plainly

The estimator is an estimate. The final price is confirmed on WhatsApp after the size and condition are seen. The site does not take payments or hold a calendar.

  • No payment is taken on the page.
  • No booking slot is held.
  • No final price is promised before the job is seen.

The evidence

Live site, source code, estimator logic, local-search structure, a small Cloudflare Worker and admin layer. The working site is the primary evidence; the source shows how the handoff is put together.

See it live

stainbusters.my ↗

Built with

HTML, CSS and JavaScript; a Cloudflare Worker and a small admin layer; local-search page structure.

What the source shows

  • Estimator logic and the WhatsApp handoff.
  • The Worker and admin boundary.
  • The local-search page structure.

What it does not show

  • Bookings, revenue or ranking outcomes.
  • A final quote before inspection.
  • Source excerpts without client permission and redaction.

The next record adds an internal dashboard and a server-side CRM boundary.

Contact / 01

Need someone who can build the whole thing?

Message on WhatsApp