☀️ Morning Brief

Sunday, March 29, 2026

Live Inspection Collaboration Inspectr+

Multiple team members on-site can view the same inspection in real-time using Supabase Realtime. When one inspector marks a defect location on the photo, others see it immediately without refresh. Keeps the crew aligned and reduces duplicate inspections.

💡 How: Use Supabase Realtime with .on() listeners; store defect positions as JSON in the inspection row. Add a Riverpod stream to rebuild the photo overlay when defects change.

Offline Search Index Buildr+

Cache all RFI/Submittal/Change Order metadata locally using Hive on app startup. When offline, users can still search by contractor name, document type, or date—results show "(cached)" badge. Auto-sync the index when reconnected.

💡 How: Index: {docId: {type, contractor, date, status}} stored in Hive. Use search() filter on startup instead of Supabase queries. Sync changes via _onMessage stream every reconnection.

Punch Photo Quality Checksum Closr+

Before syncing a punch photo to Supabase, calculate SHA-256 checksum and store locally. If a network interrupt corrupts the upload, retry detects the mismatch and re-uploads. Eliminates phantom "synced" photos that never arrived.

💡 How: Use crypto package; store checksum in local punch record before upload(). Compare remote checksum after sync completes; if mismatch, queue for retry.