Skip to main content
A Better Cleaning Company

A Better Cleaning Company

A residential cleaning company in Colorado Springs, built lean on purpose and instrumented so nothing about it is guesswork.

Year
2026
Role
Design
Build
Hosting
Care plan
Stack
Drupal 11
PHP 8.4
Webform
Turnstile
Playwright
001

The problem

The previous build in this family of sites started from a full Drupal distribution and carried roughly sixty contrib packages and six hundred configuration files to serve what was effectively one page. It worked, but every update meant updating things the site never used.

Separately, the quote form had to stop spam without punishing real people. The obvious anti-spam settings do punish real people.

002

What we did

Rebuilt from the minimal Drupal project template with a deliberate list of twenty-two contrib modules and a written note explaining what was excluded and why. The configuration count came down by roughly half.

Spam is handled with a honeypot field plus Cloudflare Turnstile. The honeypot dwell timer is deliberately switched off: it escalates per visitor IP on repeat visits, so a returning customer gets progressively more locked out of the form. That is asserted by a test so it cannot be switched back on by accident.

Fonts are self-hosted, so no third-party request happens before the visitor has answered the cookie banner. Structured data for the business is generated from real values and omits itself entirely when a value is missing, rather than emitting half-populated markup.

A Playwright suite holds committed screenshots of the homepage, the quote form, and the consent banner, so a visual regression shows up as a reviewable diff.

003

Where it landed

Live, on a server provisioned by a scripted checklist that is committed alongside the site. The deploy script restores file permissions in a trap on exit, because Drupal hardens its settings directory after install and a half-finished git pull will otherwise leave the site broken and quiet about it.

Want something like this?

Tell us what the business does and what the site needs to do.

Start a project