The Community Platform as a Local-First App
IndexedDB schema, last-write-wins reconciliation, sync queues with backoff, and why your forum belongs on the user's device first.
Engineering notes on browser storage, sync, peer-to-peer file sharing and the trade-offs of keeping community data close to the member.
IndexedDB schema, last-write-wins reconciliation, sync queues with backoff, and why your forum belongs on the user's device first.
Product page disguised as a tutorial. Files never touch our servers; integrity verified at the receiver.
Privacy-positioning post. The default should be P2P; the fallback should be relayed; the operator should disclose which.
Architecture deep-dive. PHP shell → bootstrap JSON → remote JS/CSS → IndexedDB hydrate → API session exchange.
Treating IndexedDB-stored credentials as authoritative is XSS-equivalent compromise. Auth must use short-lived signed tokens.
Remote-loaded SPAs require version pinning, integrity metadata, kill-switch blocklist, percentage canaries, and per-tenant pinning.
Stale auth, removed parent, rate limit, content rejection. The four cases optimistic UIs need to handle without losing the user's content.
Sign the bootstrap payload with a short TTL, audience restriction, and nonce. Server exchanges it for a runtime session.
Remote-shell SPAs require CSP allowlists for shell origin + tenant API, SRI for pinned bundle versions, and nonce'd inline scripts for theming.
Spec-derived. Six tables hold the entire forum + lobby + sponsor stack.
Ambient (in-app) / digest (email) / interactive (push with action) / wake-up (call/SMS). Four tiers with explicit thresholds.
Digest emails open at 38% when structured as: who's online → 1 question for you → 3 conversations near you → 1 office hour → 1 sponsor offer → unsubscribe-by-topic.
Notifications respect 3 axes: quiet hours, timezone, urgency tier. One-tap RSVP from email lifts attendance by 19%.
Lottie + diagrams: signaling server pairs peers, ICE finds path, DTLS encrypts, DataChannel chunks 16KB at a time.
Engineering eye-candy: a wave platform stack: PHP shell → bootstrap JSON → SPA → API → WS/SSE → IndexedDB cache → P2P signaling.