An offline-first social hub that aggregates content from multiple protocols (RSS, email, h-feed) and allows you to interact with them.
- Offline-first: Uses SQLite in both backend and frontend with bidirectional sync
- CRDT sync: Conflict-free replicated data types using Hybrid Logical Clocks
- Real-time updates: WebSocket-based synchronization
- PWA support: Install as a progressive web app for offline access
- Multiple protocols: Designed to support RSS, Atom, email, h-feed, and more
- Backend: Litestar (Python) with SQLite
- Frontend: Vanilla JS with SQL.js (SQLite in WASM)
- Sync: CRDT-based bidirectional replication over WebSockets
- Data model: Authors, Messages, and Contacts with flexible JSON content
pip install -e .python -m backend.seed_datauvicorn backend.app:app --reloadNavigate to http://localhost:8000
The app uses Hybrid Logical Clocks (HLC) for causality tracking and last-write-wins conflict resolution. Each record has:
hlc_timestamp: Combined physical and logical clock for orderingnode_id: Identifies which client/server made the changedeleted_at: Soft delete timestamp for CRDT tombstones
- Frontend maintains a local SQLite database in the browser (via SQL.js)
- WebSocket connection syncs changes bidirectionally
- Both client and server apply changes using CRDT logic
- Data persists in IndexedDB for offline access
- When online, changes sync automatically
- Implement RSS/Atom feed reading
- Add email integration
- Support h-feed and microformats
- Implement like and reply actions
- Add webmention sending
- Multi-contact reply selection
- Search and filtering
- Service worker for true offline support