Ethora

May 11, 2026 · View on GitHub

GitHub stars GitHub forks GitHub license

Chat, AI and messaging SDK platform. Add real-time messaging, AI bots, and backend services to your app in minutes.

This repository serves as the SDK monorepo — a single place to discover, clone, and navigate all Ethora SDKs, tools, and sample apps. Each component lives in its own focused repository, linked here as git submodules.

Ecosystem

FolderRepositoryDescriptionStatus
sdk-reactjs/ethora-chat-componentReact.js chat SDK — embed chat in any web appActive
sdk-reactnative/ethora-chat-component-rnReact Native chat SDK (iOS & Android)Active
sdk-android/ethora-sdk-androidNative Android SDK (Kotlin)Active
sdk-swift/ethora-sdk-swiftNative iOS SDK (Swift)Active
sdk-wordpress/ethora-wp-pluginWordPress plugin — no-code chat widgetActive
app-reactjs/ethora-app-reactjsFull web app (React.js) — App Builder frontendActive
playground/ethora-sdk-playgroundSDK testing & demo playgroundActive
backend-integration/ethora-sdk-backend-integrationBackend integration examplesActive
mcp-cli/ethora-mcp-cliMCP CLI for IDE/agent integrationActive
rag-demos/rag_demosRAG pipeline demos & examplesActive
bots/ethora-botsBot framework (XMPP, LLM, automation)Active
setup/ethora-setupCLI setup tool — npx @ethora/setupActive
api/(inline)REST API documentation (Swagger/OpenAPI)Reference
ethora-app-react-nativeReact Native app (iOS & Android)Legacy
site_crawlerWebsite crawler for RAG ingestionActive

Feature coverage across SDKs

Quick glance at what each SDK supports. Full matrix with evidence: features/ · Source: features/features.yaml

CapabilityReact.jsReact NativeAndroidiOSWordPress
Email/password login
JWT / custom-token login
OAuth / social login🟡🛠🟡🟡
Text messaging (send/edit/delete/reply)🟡
Reactions
Typing indicator
Delivery status indicators
Message history (MAM pagination)
Images / video / files / audio
1:1 messaging🟡
Group rooms (MUC)
Single-room (embedded widget) mode
Unread counter
Push notifications🟡
In-app notifications🟡🟡
Prebuilt chat UI
Theming🟡🟡
Dark mode
Custom component overrides🟡
Self-hosted server support
Offline message cache🟡

Legend: ✅ Present · 🟡 Partial · 🛠 Roadmap · — Absent

Coverage (present + partial×0.5) / 44 features: React.js 77% · Android 76% · React Native 68% · iOS 68% · WordPress 14%

Last reviewed 2026-04-21 (v26.04). Monthly AI-reviewed update proposed via PR.

Hosted services

These public services run on the Ethora Cloud and are useful when exploring or testing the platform — no setup required.

ServiceURLWhat it is
Web appapp.chat.ethora.comSign up, create apps, get API credentials, manage chats and AI bots.
APIapi.chat.ethora.comREST API used by all SDKs.
API docs (Swagger)api.chat.ethora.com/api-docs/#/Live, up-to-date OpenAPI / v2 routes.
XMPPwss://xmpp.chat.ethora.com:5443/wsReal-time messaging gateway.
SDK Playgroundplayground.chat.ethora.comLive @ethora/chat-component playground, code export, HTTP testing.
Uptime / statusuptime.chat.ethora.comPublic uptime and journey checks for the Ethora platform.
Documentationdocs.ethora.comDeveloper documentation portal.
QA environmentchat-qa.ethora.comPre-production QA environment (use for pre-release validation only; chat.ethora.com remains the canonical default for everything else).

Getting Started

Clone with all submodules

git clone --recurse-submodules https://github.com/dappros/ethora.git
cd ethora

If you already cloned without --recurse-submodules:

git submodule update --init --recursive

Automatic submodule bumps

This repo can update its submodule pointers automatically via .github/workflows/bump-submodules.yml.

Behavior:

  • runs every 6 hours on weekdays and on manual dispatch
  • updates each submodule to the latest commit on its remote default branch
  • commits pointer bumps directly into main
npx @ethora/setup

This will create an account, set up an app, and generate config files for your target SDK. You can also connect to a self-hosted server.

Quick paths

Add chat to a website (fastest):

cd sdk-reactjs
npm install
# See sdk-reactjs/README.md for embedding instructions

Add chat to a React Native app:

cd sdk-reactnative
npm install
# See sdk-reactnative/README.md

Native Android SDK:

cd sdk-android
# See sdk-android/README.md for Gradle setup

Native iOS SDK:

cd sdk-swift
# See sdk-swift/README.md for Swift Package Manager setup

WordPress (no code): Install the plugin from sdk-wordpress/ or see ethora-wp-plugin.

Connect via MCP (IDE/AI agent):

cd mcp-cli
npm install
# See mcp-cli/README.md

Default backend

Sign up for a free account at app.chat.ethora.com to get API credentials. The SDKs connect to Ethora Cloud by default. Self-hosted and dedicated server options are available for enterprise customers.

Canonical default endpoints (used by all official SDKs unless overridden):

PurposeDefault value
API base URLhttps://api.chat.ethora.com
API base URL (versioned)https://api.chat.ethora.com/v1 (legacy), https://api.chat.ethora.com/v2 (current)
Swagger / API docshttps://api.chat.ethora.com/api-docs/#/
XMPP WebSocketwss://xmpp.chat.ethora.com:5443/ws
XMPP hostxmpp.chat.ethora.com
XMPP MUC (conference)conference.xmpp.chat.ethora.com
Web app (sign up, admin)https://app.chat.ethora.com

What you can build

  • Chat / Messaging — 1:1 and group chat, push notifications, audio/video calls
  • AI Assistants — LLM-powered bots, RAG pipelines, prompt engineering
  • Backend-as-a-Service — Users, files, push notifications out of the box
  • Digital Wallets — ERC-20/721/1155 tokens, documents, digital assets
  • Gamification — Coins/points, referrals, daily bonuses, collectibles

Architecture

Your App
  └── Ethora SDK (React.js / React Native / Android / Swift / WordPress)
        └── Ethora Platform API (REST + XMPP)
              ├── Chat (Ejabberd + custom services)
              ├── AI (LLM bots, RAG)
              ├── Users & Auth (SSO, JWT)
              ├── Files & Storage (S3/IPFS)
              ├── Push Notifications (FCM/APNs)
              └── Blockchain (EVM, optional)

Hosting options: Cloud (free tier) | Self-hosted (AWS Marketplace / Docker) | Dedicated server

Testing & Quality

Each SDK ships with its own automated test suite, all coordinated by a single cross-platform selector contract: Android Compose testTag strings, iOS SwiftUI accessibilityIdentifier strings, and Web data-testid attributes all use the same human-readable IDs (chat_input, chat_send_button, rooms_list, …). Renaming any selector is a four-repo change by design — a contract drift breaks four CI runs the same week instead of silently rotting in one.

Test layers

LayerWhereWhat it catches
L1 — Hermetic unitJVM / Swift unit test, fakes for backendPure logic: reducers, parsers, state machines, formatters
L2 — Component UICompose UI / SwiftUI snapshot / Vitest + RTLSingle-component rendering + interaction
L3 — E2E syntheticMaestro (mobile) / Playwright (web) against a real backendMulti-screen flows, real network, cross-platform parity
L4 — ManualTester on a real deviceUX feel, IME quirks, real-device-only bugs

General rule: push every test as far down the pyramid as it will go. A pure reducer behaviour that can be expressed at L1 should never live at L2 or L3. L3 is reserved for what L1 + L2 genuinely cannot reach.

Per-SDK testing entry points

SDKL1 / L2 setup + how to runL3 flows
Androidsdk-android/README.md → Testing — Compose UI test scaffold + JVM unit-test layer, Quickstart commands, AVD setup, full test inventorysample-android/.maestro/
iOSsdk-swift/README.md — XCTest scaffold + accessibilityIdentifier markerssample-swift/.maestro/
Web (chat component)sdk-reactjs/README.md — Vitest + RTL setup, shared data-testid IDsPlaywright suite in the ethora-app-reactjs repo
React Nativesdk-reactnative/README.md(in progress)

Cross-platform scenario catalog

For the failure-mode clusters distilled from field reports and the recommended test layer per cluster, see QA_SCENARIOS.md. The catalog covers 12 areas (multi-room state machine, send + media orchestration, connection lifecycle, send-status correctness, unread counter, history + render parity, media upload, configuration safety, UI affordances, app lifecycle, auth + token state, cross-platform parity) and is updated when a new field bug class doesn't fit cleanly into the existing clusters.

Contributing

We welcome issues, discussions, and PRs across the ecosystem. Each submodule has its own issue tracker — use the relevant repository for bug reports and feature requests.

Contact

License

AGPL and MIT licenses. Commercial licenses available from Dappros.


Previous README content (archive)

Project Updates (Archive)

4 Dec 2024 — New platform UI released

Finally our new version of the overall platform UI is released. This affects the whole web version including chat component and Admin Screens. We hope you like the new look of Ethora and this inspires you to build your fascinating projects with Ethora engine! Both old and new UI are going to remain available for you to use for a few months after which we will sunset the old version. More details in our Community Forum: https://forum.ethora.com/topic/38-new-version-soft-launch/#comment-48

11 Oct 2024 — NPM: Ethora Chat Component

We released the Ethora Chat Component npm package — launch a chat room in minutes without digging into a mono-repo. https://www.npmjs.com/package/@ethora/chat-component

3 Sep 2024 — Web version redesign

We're updating our web design — new login/sign-in screens and Admin dashboard. Follow updates: https://forum.ethora.com/forum/16-updates-and-announcements/

5 Jul 2024 — Chat Component alpha

Alpha of the chat component released. It combines Ethora's platform features with simple embedding. More: https://forum.ethora.com/topic/9-ethora-nmp-package-chat-component-alpha-version/#comment-9

11 Oct 2023 — Architecture & design plans

Architecture review & refactoring; forthcoming design updates (mobile first, then web). Video by @CodeEater21 on building iOS/Android with Ethora: https://www.youtube.com/watch?v=pKEMcxJb5HM Self-hosted options via AWS Marketplace / Docker Hub planned.

Screenshots

React Native — Standard UI (new design) CleanShot 2024-07-05 at 15 56 26@2x

React Native — Standard UI (old version) collage_ethora_ 2022-08-31

Branded (customized) UI Screenshot 2023-05-04 at 17 31 05

App Builder

The fastest way to get your app running:

  1. Customize name, logo, colors
  2. Launch your web app on your subdomain
  3. Generate React Native codebases for iOS & Android

Sign up: https://app.chat.ethora.com/register

App Builder

5-minute demo (widget)

Add an AI chat to any site: CleanShot 2025-10-07 at 16 07 58@2x

Chat Bots

Ethora uses XMPP for chat. Connect bots in Python, Node.js, etc.

  • ChatGPT bot — integrate OpenAI/LLMs for topic-specialized assistants Screenshot 2023-05-05 at 11 01 10

  • Translate bot — interpreter bot (EN-ES) Screenshot 2023-05-05 at 11 03 15

Gamification, Referrals & Rewards

  • Coin (ERC-20) for project economy
  • Sign-up bonus (100 Coins by default)
  • Daily check-in (5 Coins)
  • Referrals (25 Coins to both users)

Threads

Keep busy chats tidy with thread replies.

Core Features

  • iOS, Android, Web
  • Your own name, branding, token/coin name
  • SSO (Social Sign On) via Gmail, Facebook, Apple or email
  • AI Bots with LLM, RAG, prompt engineering features
  • Each user gets a digital assets wallet + cryptographic keypair
  • Coins (ERC-20) & NFTs (ERC-721/1155)
  • Crypto-likes (tip tokens to messages)
  • Rooms & spaces, QR/public-key invites
  • Profiles, push, audio/video calls

Authors & Governance

Ethora & its server infrastructure have been developed since 2018 by Dappros and DeepX. The team is led by Taras Filatov, a Ukrainian-born and UK-based tech entrepreneur.

Backend: Dappros Platform API & DeepX RTC: EVM chain + API/cache (Node.js, Kafka, Redis, MongoDB), IPFS/S3 storage, and XMPP Ejabberd messaging with custom services (Erlang, Mnesia, MySQL, Cassandra).

Commercial model:

  • Client-side: free, open-source (closed-source commercial license available)
  • Server-side: freemium (generous free tier + paid SLA for businesses)