All work

Website + system · our own company

The Maine Cleaning Co.

Visit maineclean.co

Customers can get an estimate and book online.

My role. Design and build, end to end: the public site, the back office behind it, and the integrations between them.

The maineclean.co home page: a cleaning company site with instant estimate and online booking.

The problem

Running the cleaning company, I was paying for a dozen tools that didn't talk to each other: one for quotes and invoices, another for the crew schedule and time clock, others for the phone, booking and automation. Every handoff between them was done by hand. I mapped how a job actually moves from request to paid, and built one system around it.

What I built

  1. 01

    Marketing and booking site

    Marketing and booking site, wired straight into the back-office system that runs the company.

    The public site, with the quote request and booking flow.
  2. 02

    Instant estimate

    Reads requests, drafts a quote, and queues a reply for approval.

    The instant estimate screen, showing a drafted quote awaiting approval.
  3. 03

    Crew workspace

    A phone workspace for the crew, separate from the office: today's work, cleaning tips, availability, time off, paperwork and what each person is owed.

    The crew's Today screen with a cleaning tip, and the Me screen with availability, time off, paperwork and payouts. Names are blurred.
  4. 04

    Turnover scheduling

    Vacation rental bookings automatically appear on the cleaning schedule, keeping turnover dates and assignments in one place.

    The crew's phone view: an open turnover to request, and the month schedule. Addresses and pay are blurred.

How it ran

  1. 01

    Discovery

    Ran the cleaning company day to day, so the requirements came from doing the work rather than from a brief.

  2. 02

    Requirements

    Mapped every step from request to paid, documented where each tool fell short, and wrote the requirements and acceptance criteria before building.

  3. 03

    Design

    Interface and flows for two audiences at once: customers requesting a quote, and crew working the schedule.

  4. 04

    Build

    React front end on a Node API for the public site, a Python · FastAPI back office on Postgres, Stripe for payment and Twilio for messaging.

  5. 05

    Phased rollout

    Shipped in small, tested steps while the old tools kept running. The crew app went out in five phases, each in use before the next began.

  6. 06

    Launch and iterate

    Shipped, then kept changing it against real use. In daily production since 2026.

How it works

🌐Site
🗂️Back office
📅Schedule
💬Customer

Built with

ReactNodePython · FastAPIPostgresTwilioStripe

Result

12 → 1
overlapping tools for jobs, CRM, phone and booking, now one system
4,000+
automated tests run on every change
Daily
in use by the office and field crews since 2026

Want something like this?

Tell me what you are trying to solve. You don't need a technical plan to get started.

Start a project