smartphone
The Concept
Unlike traditional social networks where your data lives on remote servers, Holos runs a complete ActivityPub server directly on your smartphone. Your posts, followers, and cryptographic keys stay on your device, giving you control and the ability to migrate between relays.
phonelink
Your phone IS your server. Your keys never leave your device.
account_tree
Architecture
Mastodon, Pleroma, Misskey, Pixelfed...
swap_vert
ActivityPub (HTTPS)
fingerprint
Stable @handle@domain identity
cached
Profile cache (avatar, bio)
inbox
Activity queue when offline
notifications_active
Push notifications
swap_vert
ActivityPub (WebSocket)
dns
Full ActivityPub server
vpn_key
RSA keypair (private key stays local)
storage
SQLite database (posts, followers)
help_outline
Why a Relay Server?
Mobile phones can't host a traditional server: IPs change, devices sleep, and there's no stable URL. The relay solves this.
dns
Stable URL & Message Queue
The relay provides a permanent address (@you@relay.domain) and stores activities when the app is offline.
cached
Smart Cache
Profiles, avatars and media are cached with adaptive TTLs: frequent refresh for active data, long duration for static media.
vpn_lock
IP Privacy
All outgoing traffic goes through the relay, hiding your phone's IP address from remote servers.
call_received
Receiving an Activity
When someone interacts with you (like, follow, reply), here's what happens:
public
Mastodon
hub
Relay
smartphone
Your Phone
1
A Mastodon server sends a Like activity to your inbox URL on the relay
2
The relay forwards it to your phone's inbox via WebSocket in real-time
3
Your phone verifies the HTTP signature and stores the activity locally
send
Publishing a Post
When you create a post, here's what happens:
smartphone
Your Phone
hub
Relay
group
Followers
1
You write a post in the app, it's stored locally and signed with your RSA key
2
The signed activity is sent to the relay via WebSocket (your IP stays hidden)
3
The relay forwards it to each follower's inbox
cloud_off
Offline Mode
What happens when your phone is not connected?
move_to_inbox
Incoming
arrow_forward
schedule
Queue
Variable TTL
arrow_forward
smartphone
Sync
info
Activities are stored by priority: follows & DMs (7d), mentions (3d), likes & boosts (24h).
sync
Synchronization
When you come back online, here's what happens:
1. WS Reconnect
arrow_forward
2. Poll activities
arrow_forward
arrow_back
3. Send by priority
4. Confirm
arrow_forward
1
WebSocket automatically reconnects to the relay
2
App requests activities since last known timestamp
3
Relay sends queued activities, sorted by priority (urgent first)
4
Each processed activity is confirmed and removed from queue
code
Mobile App Stack
ActivityPub
WebFinger
HTTP Signatures
RSA-SHA256
WebSocket
Socket.IO
SQLite
React Native
open_in_new
Holos is open source (AGPL-3.0). Audit the code, run your own relay, or contribute.