Morrison Hotel · shower renovation HQ

The Shower
Situation.

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.

✓ Real tile shower⏱ Start in 30–60 days🛡 Insurance + warranty🏠 Ready before May 2027
Saved on this device only

What's next ✳

Appointments and follow-ups worth keeping an eye on.

Project pulse

A little structure for a job that likes to grow extra limbs.

The contact board

Tap a contractor for their complete profile and notes.

All contractors

Every call, quote, and due-diligence answer. Tap Edit to update.

Compare the actual bids

Compare apples to apples: price, scope, start date, coverage, and the all-important workmanship warranty.

ContractorEstimateTimingWaterproofingMold / CeilingInsuranceWarrantyDecision

“Not confirmed” is intentional: a contractor's marketing claim isn't the same as a verified insurance certificate or written guarantee.

Scope of a proper estimate

The estimate should clarify whether this is **a localized repair or a complete shower rebuild**, including demolition, water-damaged subfloor, plumbing checks, and what happens if hidden deterioration is discovered.
Ask for brand and method of waterproofing, shower-pan flood testing, mold treatment, permits if needed, tile allowance, ceiling restoration, change-order terms, and final payment timing.

Our non-negotiables

A single checklist for deciding when an estimate is truly complete. This is shared project-wide, not per contractor.

House notes

Decisions, constraints, and reminders that apply to the whole project.

Share it with Lori

For Cloudflare Pages use the green connection panel first. Firebase remains as an alternative, but you do not need both.

✳ Recommended: GitHub + Cloudflare live sharing

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.

Set up in about four steps:
  1. At Firebase Console, create a project, then create a Realtime Database.
  2. In Authentication → Sign-in method, enable Anonymous sign-in.
  3. In Realtime Database → Rules, paste the rules below and publish them.
  4. Get your Web API key in Project settings → General → Web app configuration. Paste the API key and database URL above, choose Enable live sync, then copy the sharing link to Lori. Her link includes the database configuration automatically. Both browsers must open the hosted website (GitHub Pages or similar), not a file attachment.

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.

Backups and portability

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.