A better way to run the home.
Know what needs attention, who is taking care of it, and what is finished. Each visit brings together clear room assignments, a shared checklist, and progress the owner can follow as work is saved.
Cleaning today? Open your checklist
How visits work
Every visit runs one closed loop.
Six stages, each hardened against a failure that actually happened — lists that rot, links that leak, tabs that linger, lanes that collide.
The day gets a dated session, scoped on purpose.
A visit is minted from a template — the 60 weekly essentials or the full 143-task deep clean — plus one-off requests written in the house's own voice. The base library never mutates for one day's needs.
- Failure test
- The day needs more than the template offers.
- System response
- Scope switches per visit, and custom tasks ride along date-keyed. A real Wednesday went from weekly scope to a full deep clean with sixteen house-voice requests — and the library never noticed.
- Next proof
- Does today's checklist match today's plan — and only today's?
Stage six feeds stage one. The weekly template is already clean for next time — recurring by design.
Visit access
A link is only a key while the visit is real.
Write access is decided by the database's security rules, not by the page. Drag the clock and watch the gate decide.
Write denied — the window opens at 11:00 AM.
The maintained rules check the visit token, update window, and status. These checks govern updates; they do not make visit records private.
request.resource.data.token == sessionData.expectedToken
request.time >= sessionData.windowStart - duration.value(2, 'h')
request.time <= sessionData.windowEnd + duration.value(2, 'h')
sessionData.status in ['scheduled', 'active']
Cleaner updates stop when the visit closes or its update window ends. Visit records remain readable under the current access model.
The home, mapped
Every zone owned. Nothing lost between rooms.
Nine zones split into two lanes balanced by effort, not task count — and every zone knows exactly how much of it recurs weekly.
Team Member #1 — Kitchen & Bathrooms
- Master Bathroom
- Kitchen — Deep Appliance Cleaning
- Kitchen Organization
- Guest Bathroom
Team Member #2 — Bedrooms, Office & Living
- Master Bedroom
- Office / Second Bedroom
- Living Room
- Outdoor & Storage
Master Bathroom, two depths.
- Scrub shower tiles and groutweekly
- Deep clean toilet bowl with cleaner and brushweekly
- Disinfect all countertopsweekly
- Sweep and mop floor - pay attention to cornersweekly
- Descale showerhead (soak in vinegar solution if needed)waits for the deep clean
- Clean exhaust fan and light fixtureswaits for the deep clean
Plus 11 more weekly tasks — the deep-only work waits, on purpose, for the deep clean.
Plus 11 more weekly and 5 more deep-only tasks — all 22, one zone, one pass.
Two zones never make the weekly list at all: Kitchen Organization and Outdoor & Storage keep their 13 tasks exclusively in the deep-clean scope. The garage cannot creep into Tuesday.
The SDA signature
Protect the rhythm.
Recurring essentials stay pristine because outliers are forced to be intentional — a one-off is a dated request on a single visit, never a permanent squatter on every future list. Scope is a decision, not an accident.
Full house deep clean
The proof trail
Every number on this page can travel back to the app.
Not a confidence badge — a build gate. The page's numerals are re-derived from the application source on every deploy, and the deploy fails if any of them drift.
Attached to the tap
Check-offs, notes, and heartbeats — timestamped writes from the cleaner's device, inside the window.
Token + timestamp stay attached.Attached to the math
Progress percentages and person-hours are computed from observed events — never typed in.
Formula + inputs stay attached.Attached to the voice
Custom tasks and standing cautions are requests written by the house, and labeled as requests.
Author + date stay attached.Attached to the build
Every numeral on this page is re-derived from the app source by a test before it can deploy.
Test + commit stay attached.The running record
Running a real home since October 2025.
Home Ops isn't a mockup. It has run every deep clean in this house since October 2025 — and its own history shows the system learning.
-
Oct 2025
First documented two-person deep clean, split by zones.
-
Nov–Dec 2025
Prioritized single-cleaner protocols and team splits, refined visit over visit.
-
Mar 2026
Full-house redo session — the library hardened by a second pass.
-
2026
Live tokenized sessions: balanced lanes, server-enforced write windows, custom tasks in the house's voice, and a real-time owner view.
Understand visit access
Know what your visit link allows.
This page uses examples. Operational visit records currently allow public reading; use that access policy when deciding what information to include.
See the home clearly.
Coordinate the work that keeps a home running, starting with each cleaning visit.
Built by SparkData Analytics →