Now in Beta
The social layer
for your community
Open Source Community Infrastructure
Private, self-governed communities — comments, feeds, reactions, follows, and end-to-end encrypted chat for any React or React Native app.
Open source and self-hostable, with moderation and stewardship built in — and 1:1 compatible with the open source Replyke (now Sublay) SDK.
Why Agora exists
Private communities, not platforms
Agora is the architecture for building private communities. It scales with the ambition of the room — drop a comment thread onto a blog today, stand up a full social network with feeds, spaces, follows, and encrypted chat tomorrow. Same primitives, same server, whether it's a dozen people or an enterprise.
Privacy and security are the foundation, not a settings page. Direct messages and group chat can be end-to-end encrypted with MLS — built so the server carries the conversation without being able to read it. That layer is not yet independently audited, and it says so on the tin. You run the infrastructure, you hold the data, and there is no third party in the middle monetizing who talks to whom.
All of it is open source. Nothing to take on faith: read the code, audit the crypto, fork it if we ever let you down. Your community sets its own rules and owns its own data — the social graph as commons, not product.
The migration away from massive social networks has already started. People are leaving feeds that were tuned to extract from them and looking for smaller rooms with their own rules. Agora is built for what comes next — communities that govern themselves and are measured by whether they're healthy, not by how long they hold attention. Moderation, stewardship, and restorative conflict resolution ship in the box.
Reference implementation
See everything Agora can do
The full reference implementation puts the entire stack in one place — feeds, reactions, follows, spaces, end-to-end encrypted chat, governance, and admin — wired up exactly as you'd build it. Come explore it, and join the community building on Agora.
The primitives
Everything social, batteries included
One SDK, your backend. Compose the primitives you need and skip the ones you don’t.
Threaded comments
From deeply nested Reddit-style threads to a simple flat list — you choose how deep the conversation goes.
Reactions & votes
An eight-reaction taxonomy — up/down votes, like, love, wow — counted atomically in real time.
Ranked feeds
Posts and articles with eight ranking algorithms: hot, top, new, controversial, decay, gravity, Wilson, Bayesian.
Follows & spaces
One-way follows, a friend-request state machine, mentions, and members-only spaces.
Encrypted realtime chat
1:1, group, and space chat over socket.io — plus an end-to-end encrypted mode (MLS, unaudited) built so the server can’t read it.
Notifications
Fan-out notifications and saved collections, wired to replies, reactions, mentions, and follows.
Governance
Governance, built in — not bolted on
Most backends hand you primitives and leave moderation to you. Agora ships content moderation and a distinct conflict-resolution layer, enforced at the trust boundary.
AI-assisted moderation
An always-on AI moderator with humans in the loop.
- Model-assisted AI moderation on every new post, comment, and message
- Configurable violation categories, confidence thresholds, and auto-actions
- Human review queues with AI confidence scores surfaced inline
- Server-enforced removal — hidden from lists, single reads, and search
Stewardship
Transformative-justice conflict resolution for people, not just content.
- A steward role between member and operator, scoped to its caseload
- Cases move open → in mediation → closed — restorative, never punitive
- Power-aware handling that flags targeting and pile-ons
- Private 1:1 or joint mediation channels, with repair before removal
The admin dashboard
Operate it all from one console: moderation and AI-flag queues, stewardship caseloads, feed-ranking tuning, webhook config, and project-health and usage analytics.
Secure chat
End-to-end encrypted chat.
Built so the server can’t read a word.
1:1, group, and space conversations encrypted on the client with MLS. Agora relays ciphertext and nothing else — privacy by architecture, not policy.
Status: unaudited
Secure Chat implements MLS (RFC 9420) via
ts-mls.
Neither ts-mls nor Agora’s integration around it has
received an independent security audit. The design is documented and the server stores only
ciphertext — but design intent is not the same as verified implementation.
Do not rely on Secure Chat where compromise
would put someone at risk. Independent cryptographic review is explicitly welcome.
Standards-based MLS
Group end-to-end encryption over MLS (RFC 9420) — the IETF standard, not a homegrown scheme.
A blind server
The delivery service stores and relays only opaque ciphertext. RLS deny-all on every secure table.
Multi-device
Devices are MLS leaves added and removed by key package — no shared secrets to copy around.
Server-blind history restore
Recover history via passphrase-encrypted backup or device-to-device — both invisible to the server.
// message row, as persisted
ciphertext: "g7Yx2pР+kQ9fZ1mАpL0vНtR8sХeWn...
...Jb4dК6yГ3oUaЗ7iМcVfН2qР9tЫxZ=="
epoch: 142, sender: leaf_3
// no plaintext. no keys.
import { useComments } from '@agora-sdk/react-js';
export function Thread({ entityId }) {
const { comments, postComment } = useComments({
entityId,
sort: 'top',
});
return <CommentList
items={comments}
onReply={postComment} />;
} Developer experience
Easily drop comments into your stack
TypeScript-first, headless SDKs for React, React Native, and Expo — with secure native token storage on mobile. Point them at your server and start shipping.
~150 typed hooks
Feed, comments, chat, spaces, auth, search, collections — fully typed, end to end.
Headless by design
Bring your own UI. The same TypeScript types flow from the database to your components.
Replyke-compatible
1:1 with the Replyke SDK — repoint one env var and your existing code just works.
Build with an AI agent that knows Agora
Install the agora plugin for Claude Code, then just describe what you need — “add a comment section with @agora-sdk/expo,” “configure the selfhost profile,” “deploy behind Caddy,” “bootstrap an admin operator.” Dedicated skills for the SDK, server config, deployment, and admin write it correctly.
/plugin marketplace add agora-oss-org/agora-plugins
/plugin install agora@agora-plugins
Documented down to the endpoint
Extensive, current server documentation covers every surface — a full REST contract, data models, the secure-chat & MLS spec, the security model, and more. Your team (and your agents) never have to guess.
From comments to a full social network
A comment thread is the lowest tier. From there, Agora scales all the way up to a complete social platform — feeds, reactions, follows, spaces, and end-to-end encrypted chat — and everything in between. Ship one primitive or the whole stack.
Open source — build it with us
Agora is developed in the open, and we welcome contributors at every experience level and across every kind of work — code, docs, design, testing, translation, and triage. Whether it’s your first pull request or your thousandth, there’s a place for you.
And help steer where it goes — join the conversation about Agora’s future and get involved in its long-term success.
…and self-host Agora in three commands
One Docker Compose stack brings up Postgres, object storage, the API, the admin dashboard, and a demo React web app behind Caddy with automatic HTTPS — plain HTTP on port 80 too. Pick a profile and go.
--profile selfhost runs everything locally (Postgres + MinIO + native auth). Prefer managed? Swap in --profile supabase, set your env vars, and get hosted Postgres, Auth, and Storage. Just want to look around? Explore the reference demo — a seeded sample community running live.
$ git clone https://github.com/agora-oss-org/agora-server
$ cd agora-server
$ docker compose --profile selfhost --profile demo up -d
✓ postgres ✓ minio ✓ api
✓ admin ✓ caddy (auto-HTTPS)
✓ demo (full sample community web app)
# your community backend is live → And more
A whole platform underneath
The infrastructure you’d otherwise stitch together yourself — already wired in.
Semantic search
Vector search over entities, comments, and messages with Voyage embeddings + pgvector.
RAG “/ask”
Grounded answers from your community’s content, streamed with sources via AI.
Pluggable storage
Supabase Storage or any S3-compatible backend, with sharp-powered image variants.
Flexible auth
Email/password, OAuth, or external RS256 JWT — with rotating, reuse-detecting tokens.
Realtime
Socket.io rooms for messages, reactions, typing, presence, and member events.
Webhooks
HMAC-signed validate + complete events your app can veto or react to.
Rate limiting
Pluggable in-memory or Redis limiter, stricter on auth, spoof-resistant IP reads.
Observability
Structured pino logs and OpenTelemetry spans across every request — export traces to your collector of choice.
Self-hosted & open source
Your community. Your servers. Your data.
Agora is open-source community infrastructure that you own outright — the full backend in your possession, your data under your control, and no platform between you and your members.
AGPL-3.0, fully open
The entire backend is open source under copyleft — not ‘source-available’, not a trial.
Bring your own backend
Run it on your infrastructure. Your members’ data never leaves your servers.
Supabase or fully local
Docker Compose profiles for managed Supabase or a self-contained Postgres + MinIO stack.
No vendor lock-in
Pluggable auth and storage, with the server as the single trust boundary.
Ship community features this week
Install the SDK, wire your backend, and render your first feed in minutes.
Live demo
Comments
The thread below is a real Agora comment section — the same open-source SDK you’d ship. It does everything from simple flat comments to the Reddit-style threads you’re looking at now: nested replies, voting, reactions. Agora SDK, running on Agora Server.