How It Works
Your device 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 device. Your posts, followers, and cryptographic keys stay local, giving you control and the ability to migrate between relays.

phonelink
Your device IS your server. Your keys never leave it.

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)
HOLOS APP
dns Full ActivityPub server
vpn_key RSA keypair (private key stays local)
storage SQLite database (posts, followers)

help_outline Why a Relay Server?

Devices can't host a traditional server: IPs change, machines 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 device'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 Device
1
A Mastodon server sends a Like activity to your inbox URL on the relay
2
The relay forwards it to your device's inbox via WebSocket in real-time
3
Your device verifies the HTTP signature and stores the activity locally

send Publishing a Post

When you create a post, here's what happens:

smartphone Your Device
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 device is not connected?

move_to_inbox Incoming
arrow_forward
schedule Queue
Variable TTL
arrow_forward
smartphone Sync
info Activities are stored with tiered retention: follows (365d), DMs (30d), mentions (14d), posts and others (7d).

sync Synchronization

When you come back online, here's what happens:

smartphone App
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; entries expire automatically via TTL

code 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.