---
id: task-4
title: PWA offline support
status: In Progress
assignee: []
created_date: '2025-12-15 19:37'
updated_date: '2026-01-02 14:28'
labels: []
dependencies: []
priority: high
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Implement service worker for offline caching. Store map tiles, venue data, and room state in IndexedDB. Sync when reconnected.
<!-- SECTION:DESCRIPTION:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
## Partial Implementation

PWA basics implemented:

1. **Service Worker** (`public/sw.js`)
   - Push notification handling
   - Location request messaging
   - Basic caching setup

2. **Install Banner** (`src/components/room/InstallBanner.tsx`)
   - Detects installable PWA state
   - Shows "Add to Home Screen" prompt
   - iOS-specific instructions
   - Dismissible with localStorage persistence

3. **PWA Manifest** - App manifest with icons and theme colors

## Still Needed
- Offline map tile caching (IndexedDB)
- Room state persistence for offline viewing
- Sync queue for offline location updates
- Background sync when reconnected
<!-- SECTION:NOTES:END -->
