How It Works
Your phone becomes your social server

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

FEDIVERSE
Mastodon, Pleroma, Misskey, Pixelfed...
swap_vert ActivityPub (HTTPS)
RELAY SERVER
fingerprint Stable @handle@domain identity
cached Profile cache (avatar, bio)
inbox Activity queue when offline
notifications_active Push notifications
swap_vert ActivityPub (WebSocket)
MOBILE APP
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
HTTPS
hub Relay
WS → inbox
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
outbox → WS
hub Relay
HTTPS
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:

smartphone Mobile
1. WS Reconnect arrow_forward
2. Poll activities arrow_forward
arrow_back 3. Send by priority
4. Confirm arrow_forward
hub Relay
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.