Holos is a privacy-focused mobile ActivityPub client that runs its own federated server directly on your device. https://holos.social
  • TypeScript 91.9%
  • JavaScript 8.1%
Find a file
Thomas 72fd097f22
All checks were successful
CI / TypeScript (push) Successful in 2m48s
- Release 1.0.0-rc-2
2026-02-07 17:31:11 +01:00
.forgejo - Fix CI 2026-01-17 10:45:14 +01:00
assets Initial commit 2025-12-20 00:36:12 +01:00
docs Initial commit 2025-12-20 00:36:12 +01:00
fastlane/metadata/android Translated using Weblate (Italian) 2026-01-09 16:07:33 +00:00
locales - Add password verification for account migration 2026-02-06 09:14:30 +01:00
nodejs-assets/nodejs-project - Fix custom domain support for ActivityPub identity 2026-02-07 10:33:44 +01:00
patches - Fix react-native-blurhash patch 2026-01-15 17:18:07 +01:00
plugins - Update navigation, plugins and components 2026-01-09 15:46:47 +01:00
scripts Initial commit 2025-12-20 00:36:12 +01:00
src - Fix custom domain support for ActivityPub identity 2026-02-07 10:33:44 +01:00
.gitignore Initial commit 2025-12-20 00:36:12 +01:00
.nvmrc Initial commit 2025-12-20 00:36:12 +01:00
app.config.js Initial commit 2025-12-20 00:36:12 +01:00
app.json - Release 1.0.0-rc-2 2026-02-07 17:31:11 +01:00
babel.config.js Initial commit 2025-12-20 00:36:12 +01:00
CONTRIBUTING.md - Add CI workflows and contribution guidelines 2026-01-15 16:57:06 +01:00
eas.json Initial commit 2025-12-20 00:36:12 +01:00
LICENSE Initial commit 2025-12-20 00:36:12 +01:00
package-lock.json - Migrate database from sql.js (Node.js worker) to op-sqlite (native) 2026-02-01 10:51:00 +01:00
package.json - Migrate database from sql.js (Node.js worker) to op-sqlite (native) 2026-02-01 10:51:00 +01:00
react-native.config.js Initial commit 2025-12-20 00:36:12 +01:00
README.md - Fix background sync (WakeLock to keep CPU active) 2026-01-06 17:33:03 +01:00
tsconfig.json Initial commit 2025-12-20 00:36:12 +01:00

Holos Logo

Holos

Your phone is your Fediverse server

Translation status

What is Holos?

Holos is a Fediverse client that turns your smartphone into a complete ActivityPub server. Unlike traditional clients that connect to remote instances, Holos runs the server directly on your device.

You own everything:

  • Your cryptographic keys never leave your phone
  • Your posts are stored locally first
  • Your followers list belongs to you
  • Your identity is portable

A relay server provides your stable identity (@you@relay.domain) and routes incoming messages to your device.

Features

Publish

Create posts with rich content:

  • Text with mentions and hashtags
  • Media attachments (images, videos, audio)
  • Polls with multiple choices
  • Content warnings for sensitive content
  • Quote posts (FEP-e232)
  • Visibility: public, unlisted, followers-only, or direct

Save drafts and continue editing later.

Discover

Multiple timelines to explore the Fediverse:

  • Home - Posts from people you follow
  • Local - Posts from your relay instance
  • Federated - Public posts from the wider Fediverse
  • Hashtags - Follow and browse hashtags

Full-text search for posts, accounts, and hashtags.

Connect

Build your social network:

  • Follow accounts from any ActivityPub server
  • Accept or reject follow requests
  • Create lists to organize who you follow
  • Block and mute accounts
  • Report content to instance moderators

Conversations

Direct messages with:

  • Conversation threads
  • Unread message indicators
  • Multiple recipients

Notifications

Stay informed with:

  • Real-time notifications when online (WebSocket)
  • Push notifications when offline (UnifiedPush / Expo)
  • Per-type preferences (mentions, likes, boosts, follows)

Profile

Customize your presence:

  • Display name, bio, avatar, header
  • Profile fields (links, pronouns, etc.)
  • Featured hashtags
  • Pinned posts
  • Account migration support

Personalization

Make it yours:

  • Light, dark, or system theme
  • Custom accent colors
  • Multiple display modes (cards, compact)
  • Language selection (English, French)
  • Custom emojis

Multi-account

Manage multiple identities:

  • Switch between accounts
  • Isolated data per account
  • Shared public timeline cache

Offline-first

Works without constant connectivity:

  • All data stored locally in SQLite
  • Activities queued when offline
  • Automatic sync when back online
  • Storage management tools

How It Works

Fediverse  <-->  Relay Server  <-->  Your Phone
(Mastodon,       (stable URL,        (ActivityPub
 Pleroma,         message queue,      server,
 Misskey...)      push notifs)        SQLite DB)

Your phone runs a Node.js server that handles ActivityPub protocol, HTTP signatures, and stores everything in a local SQLite database. The relay provides your stable identity and forwards incoming requests via WebSocket tunnel.

Getting Started

Requirements

  • Android device (iOS coming soon)
  • A Holos relay account (or self-host with Holos Relay Server)

Build from Source

git clone <repository>
cd holos
npm install
cd nodejs-assets/nodejs-project && npm install && cd ../..
npm run prebuild:clean
npm start
# In another terminal:
npx expo run:android

See Setup Guide for detailed instructions.

Tech Stack

Layer Technology
UI React Native 0.81 + Expo 54
Design React Native Paper (Material Design 3)
Server Node.js Mobile 18 + Hono
Database SQLite (sql.js)
Protocol ActivityPub + HTTP Signatures
Real-time Socket.IO + WebSocket Tunnel

Documentation

License

GNU Affero General Public License v3.0