Skip to content
Facade

Templates/ Cleaning service

Cleaning service website template for Next.js

A complete home page composed from 10 Facade blocks, in the order a visitor reads them. This page explains each section: which block, why it is there and which props to change.

Looking at the blocks themselves? Cleaning service website components for React.

Install

npx shadcn@latest add @facade/hero-local-business @facade/pricing-section @facade/process-steps @facade/service-area @facade/testimonials-wall @facade/faq-section @facade/booking-slots @facade/cta-section @facade/footer-big @facade/sticky-contact-bar
This template is a composition of registry items, not a separate download. The command installs the 10 blocks into components/facade; you assemble them in a page file in the order below. 4 of the blocks are Pro and need a license key in components.json. Pro setup.

Section by section.

What each block does on a cleaning service site and what to change first.

  1. 01

    Opens the page with the service, a live rating and a phone number. The rotating words name the jobs you want more of.

    Change first:rotatingWordsphoneratingreviewCounttrustItemsprimaryCta

    Jump to the preview

  2. 02

    Three tiers with a monthly and yearly toggle. Transparent prices remove the quote wall.

    Rename the period toggle to One time and Weekly. The yearly badge can read Save with a plan.

    Change first:tiersmonthlyLabelyearlyLabelyearlyBadgecurrencycomparisonNote

    Jump to the preview

  3. 03

    Explains what happens after the first contact. A line draws between the steps as the visitor scrolls.

    Change first:stepstitlecta

    Jump to the preview

  4. 04

    A zone map with city and ZIP lists and a ZIP checker that answers the coverage question before the call.

    Change first:zoneshqLabelsuccessMessagefailureMessagectaHref

    Jump to the preview

  5. 05

    A masonry wall of reviews with an aggregate rating header and one featured quote. Depth over density.

    Change first:testimonialsratingreviewCountfeatured

    Jump to the preview

  6. 06

    Answers the questions that stop a call, and emits FAQPage JSON-LD from the same array so the answers can show in search.

    Change first:itemsheadingphoneemailctaHref

    Jump to the preview

  7. 07

    A 14 day date strip with grouped time slots and a confirm callback. Booking without a backend.

    Set durationMinutes to your standard first visit and show the price label so no one is surprised.

    Change first:serviceNamedurationMinutespriceLabelgetSlotsclosedWeekdaysonConfirm

    Jump to the preview

  8. 08

    The closing panel. High contrast, two actions, one reassurance line.

    Change first:titledescriptionprimaryCtasecondaryCtareassurance

    Jump to the preview

  9. 09

    Name, address and phone for local search, hours, link columns, a newsletter form and a wordmark.

    Change first:businessNameaddressphoneemailhourscolumnssocialslegal

    Jump to the preview

  10. 10

    A mobile only bottom bar with Call, Text, Directions and Book. It hides on scroll down and returns on scroll up.

    Change first:phoneaddressbookingUrlactions

    Jump to the preview

The full page.

All 10 blocks stacked in order, live, at desktop width. Numbers match the sections above.

Build it in four steps

  1. Step 1

    Install the blocks

    Run the shadcn command on this page once. Every block of the cleaning service page lands in components/facade as editable TypeScript.

  2. Step 2

    Configure site data

    Create one data file with the business name, address, phone, hours, time zone and services, and pass it to the footer, contact, hours and hero blocks.

  3. Step 3

    Replace the copy

    Work through the sections below. Each one names the props to change first. Keep one claim per line and no stock phrases.

  4. Step 4

    Deploy

    Build with next build and deploy to Vercel or any Node host. The blocks are static React, so no extra services are needed.

Related templates

Back to cleaning service components or all templates.