Decentralized SNS & Civic Event Timeline Platform
Spot is a mobile app that enables citizens to document, share, and verify real-world events collaboratively. It combines decentralized social networking with an on-device evidence verification system — giving communities a trusted, censorship-resistant lens on what's happening around them.
- Camera-first interface — tap for photo, hold for video
- Multi-media posts — attach up to 4 files per post with hashtags and descriptions
- Danger Mode — automatically blur faces and strip GPS metadata for safety in sensitive situations
- Posts are grouped into civic events by hashtag and geographic location
- Real-time event timelines showing participant count, trust score, and activity
- Thread views with reply chains for community discussion
- Latest and Following tabs for home feed
- Trending, For You, and Nearby sections in Discover
- Geo-filtered and algorithmic feed scoring
Spot includes an on-device Evidence-Based Event Scoring system that assesses the trustworthiness of reported events:
- Scores based on source credibility, media integrity, geographic proximity, and cross-evidence consensus
- Witness signals:
SEEN,CONFIRM,DENY - Event confidence levels: unverified → low confidence → high confidence → conflicted
- Device-bound secp256k1 cryptographic identity
- BIP39 12-word mnemonic for key recovery
- Biometric app lock (Face ID / fingerprint)
- Follow/unfollow users and hashtags
- Follower/following lists and profile stats
- Interest tags for topic-based discovery
- GPS locking at capture time
- Location-aware discovery with Natural Earth city database
- Geographic event clustering on map views
- Offline-first with local SQLite database
- IPFS pinning for permanent, decentralized media storage
- SHA-256 content hashing for integrity verification
- WebSocket-based P2P networking
| Layer | Technology |
|---|---|
| Framework | Flutter (Dart) |
| Cryptography | secp256k1, BIP39, SHA-256 |
| Storage | SQLite (sqflite), flutter_secure_storage |
| Media | Camera, ML Kit (face detection), image/video processing |
| Maps | flutter_map, latlong2 |
| Network | WebSocket (web_socket_channel), IPFS, Supabase |
| Auth | local_auth (biometrics) |
- Flutter SDK
^3.11.0 - Dart SDK (included with Flutter)
- Android SDK or Xcode (for iOS)
# Clone the repo
git clone <repo-url>
cd mobile
# Install dependencies
flutter pub get
# Copy environment config
cp .env.example .env
# Edit .env with your API keys
# Run the app
flutter runThe app requires a .env file in the project root. See .env.example for required keys (Supabase URL, anon key, media presign endpoint, etc.).
lib/
├── main.dart # App entry point
├── models/ # Data models (CivicEvent, Post, User, ...)
├── screens/ # UI screens (feed, camera, profile, ...)
├── services/ # Business logic (auth, sync, trust scoring, ...)
└── widgets/ # Reusable UI components
Private — all rights reserved.