A decentralized social media application combining the best of Facebook, Myspace, Discord, Soundcloud, and Chatroulette — built on Freenet, Nostr, I2P, and Reticulum Mesh. Features dating, feed, events, messenger, marketplace, and customizable profiles — all running on a peer-to-peer foundation.
Soshal provides complete feature parity with leading social media references ("exact" encompasses every feature of the reference platform plus decentralized and cryptographic superset enhancements). For exhaustive architectural and functional specifications, see FEATURE_GUIDELINES.md.
Social Feed (Facebook Parity):
Notifications (with Comprehensive Ignore):
@everyone pings, event invites).Messages (Facebook Messenger Parity):
...), and delivery/seen indicators featuring recipient avatar badges.Groups (Discord Parity):
#channel): Markdown formatting, spoiler tags, threaded sub-conversations, pins, and rich file attachments.🔊 voice): Drop-in/drop-out WebRTC voice rooms, active speaker green circles, individual volume sliders, mute/deafen, and screen sharing.📢 stage): Keynote broadcast rooms separating designated stage speakers from audience listeners with a moderated "Raise Hand" queue.@everyone/@here, Voice Connect/Speak/Priority).Dating (Facebook Dating Parity):
Marketplace (Facebook Marketplace Parity):
Events (Multi-Screen Architecture):
Minis (Instagram Reels Parity):
Live (Twitch Parity):
streaming-core), with multi-quality transcoding selectors (Source/1080p60, 720p60, 480p, 360p, Auto), theater mode, and picture-in-picture.Musicloud (SoundCloud Parity):
?t=01:23), and artist spotlight profiles with discography tabs.ChatRandom (Multimodal Chatroulette + 1-on-1 & Groups):
#gaming, #music, #tech), language filter, and regional preferences.Custom Profiles (MySoshal) — Drag-and-drop profile builder with modular widgets: text, media gallery, music player, friend grid, contact card, Q&A, and theme selection.
Web of Trust & Privacy Controls — Public, Friends-Only, and Stealth (encrypted to whitelisted pubkeys) modes with friend-of-friend distance calculation.
Reticulum Mesh & P2P — Off-grid peer-to-peer mesh networking with identity discovery (ANNOUNCE), 128-bit destination addressing, and packet routing over UDP, Multicast, and RNode serial interfaces.
Multi-Account & Biometric Security — Seamless switching between Nostr identities, protected by Face ID, fingerprint, or PIN lock.
I2P & Freenet Support — Automatic I2P proxy detection, relay routing, and Freenet decentralized storage.
| Layer | Technology |
|---|---|
| UI Framework | Flutter (Dart) — the only client |
| App Backend | Rust via flutter-bridge FFI adapter (auto-generated frb_generated.dart bindings) |
| Core Logic & Domain | Rust Native Workspace (32 *-core crates + flutter-bridge; 34 workspace members) |
| Database | SQLite (Turso libsql) with FTS5 (db-core) |
| Nostr & Cryptography | nostr-sdk, ring, pqc-core post-quantum crypto (ML-KEM-768 / ML-DSA-65) |
| Mesh Networking | Native Reticulum Mesh Stack + exotic/mesh transports (mesh-core, re-exported via soshal-network-core::…) |
| Mobile Support | Android (multi-ABI) + iOS |
.so builds)libmpv.so.2 for media playback (media_kit backend; builds/linux/build.sh
bundles a host copy into the AppImage when present):
sudo apt install libmpv2sudo dnf install mpv-libssudo pacman -S mpvbuilds/android/build.sh): i2pd per-ABI, rnsd in-process via Chaquopy
(rnspure). Freenet has no official Android binary — an error stub ships
instead (no APK binary). See DAEMON_BUNDLING.md. Desktop users can run
their own i2pd/freenet/rnsd; status surfaces in Settings → Network.# Type-check all workspace Rust crates (32 cores + flutter-bridge)
cargo check --workspace
# Run all Rust unit tests
cargo test --workspace
# Flutter app
cd soshal_flutter && flutter pub get && flutter build apk
cd ..
# Build Android bridge .so per ABI (recipe in AGENTS.md), then bundle via
# flutter build apk (jniLibs already wired)
Soshal/
├── soshal_flutter/ # Flutter UI + services + routes (the only client; 41 providers)
├── flutter-bridge/ # FFI adapter: 55 modules calling into *-core
├── crypto-core/ # ring sha256/hmac/hkdf, NIP-44 & PQC
├── db-core/ # SQLite (libsql) migrations & repositories
├── nostr-core/ # Nostr keys, events, relay engine (nostr-sdk)
├── sync-core/ # Background sync engine, outbox replay, watermark
├── media-core/ # Blossom media client & session management
├── content-core/ # Hashtag/mention/URL parsing & compression
├── identity-core/ # Web of Trust, NIP-05, key & seed management
├── network-core/ # Relay pool, P2P (TCP HMAC + QUIC), battle-tested mesh re-exports
├── mesh-core/ # Exotic/mesh transports: freenet, I2P SAM, Reticulum, BLE, Wi-Fi Direct, PQC link
├── storage-core/ # Audio waveform & cache eviction
├── feed-core/ # Post ranking & feed algorithms
├── groups-core/ # NIP-29 membership & channels
├── messaging-core/ # NIP-44 encrypted messaging
├── social-core/ # Compatibility & social scoring
├── events-core/ # Check-in & NIP-52 calendar logic
├── marketplace-core/ # NIP-15 listing & escrow handling
├── dating-core/ # Compatibility scoring & filtering
├── search-core/ # FTS5 search & event→result mapping
├── notification-core/ # Notification filtering
├── moderation-core/ # Content moderation
├── analytics-core/ # Analytics & audit helpers
├── webrtc-core/ # ICE/WebRTC helpers
├── spatial-core/ # Spatial helpers
├── zap-core/ # LNURL/NWC + BOLT-11 (NIP-47)
├── streaming-core/ # Live video/chat (MoQ groups, WebRTC/RTMP)
├── minis-core/ # Short-form video (kind 31020) + WASM filters
├── audio-core/ # Voice notes, waveform (AAC capture/decode)
├── telemetry-core/ # Local telemetry store
├── layout-core/ # Profile/mesh canvas layout
├── relay-core/ # Local relay node
├── pqc-core/ # Post-quantum crypto (KEM, DSA) & Freenet identity
├── scripts/ # Tooling (check-core-compliance.sh, build-reticulum.sh, trim-ffi-glue.sh)
└── Cargo.toml # Cargo workspace definition (34 members: 32 cores + bridge + test-util)
Soshal is designed with privacy by default:
Users control their own keys, data, and which relays they connect to.
MIT
150 commits
Rust
59.7%
Dart
38.3%
A decentralized social media application combining the best of Facebook, Myspace, Discord, Soundcloud, and Chatroulette — built on Freenet, Nostr, I2P, and Reticulum Mesh. Features dating, feed, events, messenger, marketplace, and customizable profiles — all running on a peer-to-peer foundation.
Soshal provides complete feature parity with leading social media references ("exact" encompasses every feature of the reference platform plus decentralized and cryptographic superset enhancements). For exhaustive architectural and functional specifications, see FEATURE_GUIDELINES.md.
Social Feed (Facebook Parity):
Notifications (with Comprehensive Ignore):
@everyone pings, event invites).Messages (Facebook Messenger Parity):
...), and delivery/seen indicators featuring recipient avatar badges.Groups (Discord Parity):
#channel): Markdown formatting, spoiler tags, threaded sub-conversations, pins, and rich file attachments.🔊 voice): Drop-in/drop-out WebRTC voice rooms, active speaker green circles, individual volume sliders, mute/deafen, and screen sharing.📢 stage): Keynote broadcast rooms separating designated stage speakers from audience listeners with a moderated "Raise Hand" queue.@everyone/@here, Voice Connect/Speak/Priority).Dating (Facebook Dating Parity):
Marketplace (Facebook Marketplace Parity):
Events (Multi-Screen Architecture):
Minis (Instagram Reels Parity):
Live (Twitch Parity):
streaming-core), with multi-quality transcoding selectors (Source/1080p60, 720p60, 480p, 360p, Auto), theater mode, and picture-in-picture.Musicloud (SoundCloud Parity):
?t=01:23), and artist spotlight profiles with discography tabs.ChatRandom (Multimodal Chatroulette + 1-on-1 & Groups):
#gaming, #music, #tech), language filter, and regional preferences.Custom Profiles (MySoshal) — Drag-and-drop profile builder with modular widgets: text, media gallery, music player, friend grid, contact card, Q&A, and theme selection.
Web of Trust & Privacy Controls — Public, Friends-Only, and Stealth (encrypted to whitelisted pubkeys) modes with friend-of-friend distance calculation.
Reticulum Mesh & P2P — Off-grid peer-to-peer mesh networking with identity discovery (ANNOUNCE), 128-bit destination addressing, and packet routing over UDP, Multicast, and RNode serial interfaces.
Multi-Account & Biometric Security — Seamless switching between Nostr identities, protected by Face ID, fingerprint, or PIN lock.
I2P & Freenet Support — Automatic I2P proxy detection, relay routing, and Freenet decentralized storage.
| Layer | Technology |
|---|---|
| UI Framework | Flutter (Dart) — the only client |
| App Backend | Rust via flutter-bridge FFI adapter (auto-generated frb_generated.dart bindings) |
| Core Logic & Domain | Rust Native Workspace (32 *-core crates + flutter-bridge; 34 workspace members) |
| Database | SQLite (Turso libsql) with FTS5 (db-core) |
| Nostr & Cryptography | nostr-sdk, ring, pqc-core post-quantum crypto (ML-KEM-768 / ML-DSA-65) |
| Mesh Networking | Native Reticulum Mesh Stack + exotic/mesh transports (mesh-core, re-exported via soshal-network-core::…) |
| Mobile Support | Android (multi-ABI) + iOS |
.so builds)libmpv.so.2 for media playback (media_kit backend; builds/linux/build.sh
bundles a host copy into the AppImage when present):
sudo apt install libmpv2sudo dnf install mpv-libssudo pacman -S mpvbuilds/android/build.sh): i2pd per-ABI, rnsd in-process via Chaquopy
(rnspure). Freenet has no official Android binary — an error stub ships
instead (no APK binary). See DAEMON_BUNDLING.md. Desktop users can run
their own i2pd/freenet/rnsd; status surfaces in Settings → Network.# Type-check all workspace Rust crates (32 cores + flutter-bridge)
cargo check --workspace
# Run all Rust unit tests
cargo test --workspace
# Flutter app
cd soshal_flutter && flutter pub get && flutter build apk
cd ..
# Build Android bridge .so per ABI (recipe in AGENTS.md), then bundle via
# flutter build apk (jniLibs already wired)
Soshal/
├── soshal_flutter/ # Flutter UI + services + routes (the only client; 41 providers)
├── flutter-bridge/ # FFI adapter: 55 modules calling into *-core
├── crypto-core/ # ring sha256/hmac/hkdf, NIP-44 & PQC
├── db-core/ # SQLite (libsql) migrations & repositories
├── nostr-core/ # Nostr keys, events, relay engine (nostr-sdk)
├── sync-core/ # Background sync engine, outbox replay, watermark
├── media-core/ # Blossom media client & session management
├── content-core/ # Hashtag/mention/URL parsing & compression
├── identity-core/ # Web of Trust, NIP-05, key & seed management
├── network-core/ # Relay pool, P2P (TCP HMAC + QUIC), battle-tested mesh re-exports
├── mesh-core/ # Exotic/mesh transports: freenet, I2P SAM, Reticulum, BLE, Wi-Fi Direct, PQC link
├── storage-core/ # Audio waveform & cache eviction
├── feed-core/ # Post ranking & feed algorithms
├── groups-core/ # NIP-29 membership & channels
├── messaging-core/ # NIP-44 encrypted messaging
├── social-core/ # Compatibility & social scoring
├── events-core/ # Check-in & NIP-52 calendar logic
├── marketplace-core/ # NIP-15 listing & escrow handling
├── dating-core/ # Compatibility scoring & filtering
├── search-core/ # FTS5 search & event→result mapping
├── notification-core/ # Notification filtering
├── moderation-core/ # Content moderation
├── analytics-core/ # Analytics & audit helpers
├── webrtc-core/ # ICE/WebRTC helpers
├── spatial-core/ # Spatial helpers
├── zap-core/ # LNURL/NWC + BOLT-11 (NIP-47)
├── streaming-core/ # Live video/chat (MoQ groups, WebRTC/RTMP)
├── minis-core/ # Short-form video (kind 31020) + WASM filters
├── audio-core/ # Voice notes, waveform (AAC capture/decode)
├── telemetry-core/ # Local telemetry store
├── layout-core/ # Profile/mesh canvas layout
├── relay-core/ # Local relay node
├── pqc-core/ # Post-quantum crypto (KEM, DSA) & Freenet identity
├── scripts/ # Tooling (check-core-compliance.sh, build-reticulum.sh, trim-ffi-glue.sh)
└── Cargo.toml # Cargo workspace definition (34 members: 32 cores + bridge + test-util)
Soshal is designed with privacy by default:
Users control their own keys, data, and which relays they connect to.
MIT
150 commits
Rust
59.7%
Dart
38.3%