What's next ✳
Appointments and follow-ups worth keeping an eye on.
One shower. Thirty contractor leads. A finish line before the house goes on the market. All the questions, quotes, dates, and decisions in one happy place.
Appointments and follow-ups worth keeping an eye on.
A little structure for a job that likes to grow extra limbs.
Tap a contractor for their complete profile and notes.
Every call, quote, and due-diligence answer. Tap Edit to update.
Compare apples to apples: price, scope, start date, coverage, and the all-important workmanship warranty.
| Contractor | Estimate | Timing | Waterproofing | Mold / Ceiling | Insurance | Warranty | Decision |
|---|
“Not confirmed” is intentional: a contractor's marketing claim isn't the same as a verified insurance certificate or written guarantee.
A single checklist for deciding when an estimate is truly complete. This is shared project-wide, not per contractor.
Decisions, constraints, and reminders that apply to the whole project.
For Cloudflare Pages use the green connection panel first. Firebase remains as an alternative, but you do not need both.
After deploying this folder to Cloudflare Pages and attaching the D1 database, enter the shared access code created in your Cloudflare project. Both people use the same website URL and access code. No Firebase needed.
Cloudflare connection not active. This version also supports the older Firebase option below.
Anyone with the complete random room link and configured app access can see or change its contents. Share it only with Lori. Keep personal addresses, financial data, and sensitive mold reports out of the public repo. Authentication prevents unauthenticated database requests, but anonymous sign-in plus a secret room link is not strong access control. Use individual Firebase users with per-user permissions for truly private records.
Works offline on one browser even without Firebase. Export regular backups; import a backup on another device if you don't enable live sync.
Changes are autosaved locally. Import replaces the current data. Firebase sync, if connected, also updates the shared room.
All fields are optional. Unknown means unknown, not no.