Cleaning Ideals
The phone has to ring
- Completed
- Chicago, USA
- Mar 2026 – Oct 2026
Overview
A cleaning company does not need a website. It needs the phone to ring, and someone to call back before the customer books a competitor.
The first version was a single-page booking funnel in Next.js: services, pricing up front, gallery, reviews, FAQ and a short form that arrived in the owner's inbox. The second adds the system behind it: every request is now saved to the company's own CRM before the email goes out, and worked from a dashboard at /admin.
The dashboard shows who is waiting for a callback (red after an hour), follow-ups due, the week's cleanings and this month's leads, bookings and revenue. Each lead has call and text buttons, a one-tap stage bar from New to Completed, Recurring or Lost, job details, a next step with a due date, and notes. The lead is saved and the owner emailed independently, so one failure never loses a request, and the site's own cookie-free analytics show what each customer looked at before booking.
Evidence
What it looks like running
One unbroken take on a local copy with demo data: a request sent from the form, the lead waiting on the CRM dashboard, its stage changed and a note logged CRM dashboard, demo data: who is waiting for a callback, follow-ups due, the week's cleanings and where bookings come from Leads list, demo data: status tabs, search, the next step for each lead and CSV export One lead, demo data: stage bar, call and text buttons, job details and the history of every change Pricing section: three plan cards, each with its inclusion list and a Get Estimate call to action Services laid out as a bento grid, each card carrying its own Book button The estimate request form, with service-type chips and a phone number as a fallback below it The same page at a 390 px phone width, with the FAQ accordion and a sticky Book Now bar Before and after oven clean, one of the gallery images on the site Before and after shower glass clean, one of the gallery images on the site
Engineering
How it was built
Frontend
- Next.js and TypeScript booking site
- Sticky mobile call to action that follows the scroll
- Campaign offers held in one place and selected from the URL
Backend & services
- Own CRM at /admin: dashboard, pipeline, follow-ups, notes, CSV export
- Prisma on SQLite locally, Turso in production
- Lead saved and owner emailed independently, so one failure never loses a request
- Own cookie-free analytics, plus GA4, Clarity and Meta Pixel events
SEO & metadata
- Local business and FAQ structured data, sitemap and robots rules
- Privacy policy, terms and recorded form consent
- DIS IT credit and link in the site footer
Applied
Skills on this project
Next step
Tell us what you're building
Book a free 30-minute call with the engineer who would do the work. You get a written summary afterward, whether or not we work together.
Prefer to write? A developer reads every message and replies within one business day.