Skip to content

Diamond Star Cleaning Services

2026–Present

Design and build for Diamond Star Cleaning Services, a residential and commercial cleaning company in Allentown and the Lehigh Valley, owned by Maura Turbi. The business opened on 8 September 2026 — so this is a launch, not a rescue: brand, design system, bilingual site, local entity architecture, pricing, booking, and the contact layer.

The problem

A local services business needs the same facts to be identical in a dozen places at once — the Google Business Profile, the website, the schema markup, review requests, directory citations, and whatever an answer engine reads. Hand-writing a service page, then filling in the profile afterwards, guarantees the two disagree within a quarter. The usual failure is not a missing page; it is eighteen services and fifteen towns described three slightly different ways. Two things make it harder here. Allentown's population is majority Hispanic or Latino, so Spanish is a primary buyer language rather than a courtesy translation. And a business with no history has no reviews, no citations and no trading record — every claim it makes has to be one it can actually stand behind.

Approach

  1. 01

    Built the business as a database first — one JSON catalog holding services, locations, property types, tasks, trust attributes, hours, prices, coupons and the schema model — and treated it as the only place any of it is edited.

  2. 02

    Specified the Google Business Profile from that catalog before writing a page, then built the site field-for-field against it rather than designing a site and retrofitting the profile.

  3. 03

    Wrote a Python build that renders the site as a view of the catalog: pages, JSON-LD, internal links and the sitemap regenerate together, so a page cannot drift from the specification because no page is written by hand.

  4. 04

    Translated the site properly rather than bolting on a language switch: Spanish pages get Spanish URLs, because a translated slug is what earns the query and an English slug under an /es prefix does not.

  5. 05

    Registered every factual claim the business makes as a checkable proposition, and wrote an auditor that reads the built HTML and reports where each claim is asserted, whether anything contradicts it, and which factual-looking sentences are not registered at all.

  6. 06

    Set a coupon policy before there were any coupons: never discount the recurring rate, and never trade anything for a review.

  7. 07

    Derived the design system from the logo mark — a facet geometry, a serif no local competitor uses, and one accent held back far enough to read as metal — and wrote it down as a rule set the build is checked against.

What was built

  • Eighty-two pages — forty-one English, forty-one Spanish with translated slugs — generated from a single JSON catalog
  • A zero-dependency Python static site generator with its own templating, plus a second build that regenerates the catalog's documentation and keyword CSVs
  • A proposition auditor that fails loudly: twelve registered claims checked across the built site for coverage and contradiction, with unregistered factual assertions surfaced as candidates
  • Connected Schema.org markup — Organization, Service, Offer, OfferCatalog, FAQPage, WebSite, WebPage and area served — modelled as a relationship chain rather than disconnected blocks
  • Three-tier pricing published as starting prices, and a booking flow whose handler stores nothing at all
  • A written design system: type scale, an eight-point spacing rhythm, facet motifs, and a contrast rule that keeps the gold off every button
  • Voice agent integration, a Twilio line for calls and SMS, and the consent, terms and privacy pages A2P 10DLC requires
  • An incremental FTPS deploy that hashes each file and uploads only what changed

Stack

  • Interface design
  • Python static site generator
  • JSON single source of truth
  • Bilingual · translated slugs
  • Schema.org entity graph
  • Programmatic SEO
  • Voice AI widget

Outcome

The site ships as static pages with no runtime dependency, in two languages, and every fact on it traces to one record — and is checked against that record before it ships. The audit currently reports zero contradictions across the built site. What it has not yet produced is rankings: three months of Search Console show the pages indexed and matching the right service-and-location queries, at an average position around fifty. For a business that opened in September with no reviews and no links, that is relevance working and prominence not yet existing.

Key decisions

  1. 01

    A JSON catalog compiled by a Python build

    Instead of: A CMS, or a JavaScript framework with a headless backend

    The requirement was that no page could be edited independently of the specification. A CMS invites exactly that, and a framework would have added a runtime and a build toolchain to a site that is eighteen services and fifteen towns. The output is static HTML with no dependency to keep patched.

  2. 02

    Spanish pages get Spanish URLs

    Instead of: An /es prefix over the English slugs, or a client-side language switch

    Allentown is majority Hispanic or Latino, so this is a primary buyer language, not a courtesy. A translated slug earns the query; an English slug under a Spanish prefix is a page in the wrong language wearing the wrong address, and it competes for nothing.

  3. 03

    Every claim registered as a checkable proposition

    Instead of: Trusting the copy, and the person editing it

    Insurance, bonding, background checks, hours, guarantee, radius — these are the claims that quietly go stale, and the ones that matter most if they do. Registering them means the build can report where each is asserted and flag anything that contradicts the record, which is the difference between a site that is accurate today and one that stays accurate.

  4. 04

    The booking handler stores nothing

    Instead of: Writing submissions to a file or a database on the host

    On this host the FTP root is the web root, so anything written would be publicly fetchable — and a booking request carries a customer's name, address and phone number. It emails out and keeps nothing at rest, with a honeypot, a minimum time on page, a per-IP rate limit, and CRLF stripped from every value that reaches a mail header.

  5. 05

    Never discount the recurring rate, and never trade anything for a review

    Instead of: Running the introductory offers everyone else in the category runs

    A cut recurring rate becomes the permanent anchor, and raising it later reads as a price rise. Paying for reviews violates Google's policies and the FTC's, and it is the most tempting shortcut available to a business with no reviews. Both are written into the catalog as policy so the decision survives the temptation.

  6. 06

    The Google Business Profile specified before the site was designed

    Instead of: Designing the site first and filling in the profile afterwards

    For a local business the profile is the entity Google actually ranks; the website is the expanded representation of it. Built in the other order, the two disagree, and reconciling them later means rewriting whichever one lost.

  7. 07

    Gold barred from filling any button

    Instead of: Following the reference site's yellow call-to-action pattern

    The reference uses a far brighter yellow. At this brand's gold the same pattern fails contrast against white text and reads muddy against dark, so navy carries every call to action and the gold stays rare enough to read as a metal.

In short

Is this just a website for a cleaning company?

The website is one output of it. The project is a local entity model — a single machine-readable record of the business, its services, its prices and its service area — that the Google Business Profile, the site's eighty-two bilingual pages, the schema markup, and the review and citation programme are all generated from or checked against. The checking is the part most builds skip: every factual claim the business makes is registered as a proposition, and an auditor reads the rendered HTML before deploy to report where each claim appears and whether anything on the site contradicts it. Building it that way is what keeps the same eighteen services described identically everywhere a customer or a search engine encounters them, in both languages.