Coffee shop headline: record, generate, QR, blown mind. Depends on Phase 1 (Vault for BYOK keys).
You're sitting across from someone. You record the conversation on your phone.
60 seconds later, you show them a QR code. They scan it.
They see a custom page with their name, their pain points, their opportunities.
Built while you were talking to them.
manifest.json (app name, icons, theme color, display: standalone), service worker (cache-first for app shell, network-first for API), layout.tsx meta tags. Result: "Add to Home Screen" on iOS/Android.
Bottom nav bar (mobile only): Home, Record, Publish, Settings. Simplified page list as cards. Domain selector as dropdown. Touch-optimized buttons and inputs.
Primary: Web Speech API (SpeechRecognition) for browser-based transcription. Start/stop recording, real-time transcript display, auto-punctuation. Fallback: Deepgram/AssemblyAI WebSocket API for higher accuracy (BYOK via vault).
File: components/mobile/LiveRecorder.tsx
After recording: transcript preview, simplified template picker (top 3-4 templates as cards), basic variables (prospect name, password, phone number), "Generate" button calling /api/reveal/run, progress indicator.
qrcode npm package (lightweight). After publish: full-screen QR display for scanning, copy URL fallback, elapsed time display.
Single-screen flow: Record → Generate → QR. Elapsed time counter ("Generated in 47 seconds"). Share button for SMS/email link.
| File | Role |
|---|---|
| public/manifest.json | PWA manifest |
| public/sw.js | Service worker |
| components/mobile/LiveRecorder.tsx | Transcription + recording UI |
| components/mobile/QuickReveal.tsx | Simplified Reveal flow |
| components/mobile/QRDisplay.tsx | Full-screen QR code |
| components/mobile/MobileNav.tsx | Bottom navigation bar |
Flush out during build. These are directional, not spec.
Generate page 1 fast (~20-30s) with links to deeper pages already baked in using deterministic slugs. Show QR immediately. Background loop generates and publishes pages 2, 3, etc. while prospect reads page 1. If they click a deep-dive link before it's ready, show a "generating..." interstitial that auto-refreshes.
Result: full depth, but the wow moment is instant.
Every mobile template must have a clean, natural way to connect with the person who generated the page. Not a hard gate on first visit — earn the connection.
Full flow, all preset-able before an event but overridable in the moment:
Prospect scans, sees page 1 while deeper pages build in background.
Before a networking event or conference, preset all defaults: template, CTA, domain, password. During the event, the flow is: record → name → generate. Three taps max to QR code.