Progressive Web App (PWA)
Overview
A web-based app that runs in browser but behaves like a native app.
Advantages
- Works on any device (phone, tablet, laptop)
- No app store approval needed
- Single codebase for all platforms
- Can request microphone permissions
- Can run in background (with limitations)
- Installable to home screen
Implementation
Tech Stack
- React/Next.js or Vue frontend
- Web Audio API for microphone access
- WebSocket connection to Nexus
- Service Worker for background operation
Key Features
// Request microphone
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
// Connect to Nexus via WebSocket
const ws = new WebSocket('wss://nexus.corlera.com/voice');
// Send audio for wake word detection
ws.send(audioData);
Limitations
- Browser may suspend background audio after a while
- iOS Safari has stricter restrictions
- Needs user interaction to start audio
Workarounds
- Keep-alive pings to prevent suspension
- "Tap to activate" button for iOS
- Desktop PWA has fewer restrictions