Ethora is a free, open source automation project written in JavaScript and released under Apache-2.0. It has 552 GitHub stars, 112 forks and 2 open issues, and was last pushed 29 hours ago. On this registry it ranks #56 of 66 tracked projects in Automation, with 5 head-to-head comparisons available. It gained 4 stars over the last 30 tracked days.

What is Ethora?

Ethora is an Apache-2.0 licensed chat, AI and messaging SDK monorepo that adds real-time messaging, prebuilt chat UI, bots and backend services to web, iOS and Android applications, and it is aimed at product teams that would rather integrate a messaging layer than assemble one.

What it is

Ethora is the SDK monorepo for the Ethora chat and messaging platform: a single place to discover, clone and navigate all Ethora SDKs, tools and sample apps. Each component lives in its own focused repository and is linked from the monorepo as a git submodule, including sdk-reactjs/ (ethora-chat-component), sdk-reactnative/ (ethora-chat-component-rn), sdk-android/ (ethora-sdk-android, Kotlin), sdk-swift/ (ethora-sdk-swift), sdk-wordpress/ (ethora-wp-plugin), app-reactjs/ (the App Builder frontend), playground/, backend-integration/, mcp-cli/ (ethora-mcp-server), rag-demos/, bots/ (ethora-bots) and setup/ (ethora-setup), with REST API documentation kept inline in api/ as Swagger/OpenAPI. The repository is JavaScript, licensed Apache-2.0, and currently shows 545 stars, 111 forks and 2 open issues.

The concrete problem it solves is the per-platform assembly of chat plumbing. Instead of each team wiring authentication, message history, group rooms, notification paths and bot infrastructure separately for web, Android and iOS, Ethora exposes those as SDK features: email/password and JWT/custom-token login, message history with MAM pagination, MUC group rooms, typing indicators, push notifications and an offline message cache. It sits in the React, React Native, Kotlin, Swift and WordPress ecosystems, and its topics name ejabberd and chat-engine, so an XMPP-based messaging stack is the layer it wraps rather than something each application reimplements.

Key capabilities

  • Prebuilt chat UI across sdk-reactjs/, sdk-reactnative/, native Android (Kotlin) and native iOS (Swift), plus a WordPress plugin that provides a no-code chat widget.
  • Group rooms (MUC), 1:1 messaging and a single-room embedded widget mode, with message history via MAM pagination and an unread counter.
  • Rich media messaging: images, video, files and audio, with text messaging that supports send, edit, delete and reply.
  • Authentication options spanning email/password and JWT/custom-token login on all four code SDKs, with OAuth/social login present in React.js, partial on React Native and iOS, and on the Android roadmap.
  • setup/ ships the CLI npx @ethora/setup, while mcp-cli/ ships ethora-mcp-server, an MCP CLI for IDE and agent integration.
  • bots/ (ethora-bots) is a bot framework covering XMPP, LLM and automation work; rag-demos/ and site_crawler cover RAG pipeline examples and website crawling for RAG ingestion.
  • api/ documents the REST surface as Swagger/OpenAPI, backend-integration/ provides backend integration examples, and features/features.yaml backs the published per-SDK feature matrix.

Who uses it and how

  • Web product teams embed ethora-chat-component into an existing React.js application, or start from app-reactjs/ as an App Builder frontend.
  • Mobile teams pick the native path — ethora-sdk-android in Kotlin or ethora-sdk-swift in Swift — or use ethora-chat-component-rn to cover iOS and Android from one React Native codebase.
  • WordPress site owners install ethora-wp-plugin for a no-code widget, typically in the single-room embedded mode that all five SDKs support.
  • AI and agent teams use ethora-mcp-server for IDE/agent integration, run RAG experiments from rag-demos/, and ingest site content with site_crawler.
  • Enterprises that outgrow the free ethora.com cloud can take the dedicated server plus SLA option; ethora-app-react-native remains available but is marked Legacy.

Getting started

Install Method: Run npx @ethora/setup from the setup/ component, or integrate an SDK manually by cloning the relevant submodule. The default server is the ethora.com cloud, which is free, with a dedicated server and SLA offered for enterprise customers.

How it compares

The facts provided list no paid products that Ethora replaces, and no directly comparable chat SDK is named in this registry. On that basis it stands alone among the entries described here.

When to use it — and when not to

A self-hoster takes on operating the messaging backend itself, since the SDKs list self-hosted server support but the platform still depends on an XMPP-style server and its storage, whether hosted on the ethora.com cloud or run in-house. The weakest surface is WordPress, where text messaging and 1:1 chat are only partial and reactions, typing indicators, media, message history and unread counters are absent, so a WordPress-only project expecting full parity should look elsewhere. Teams wanting React Native push notifications or social login should also expect partial support, and note that the React Native full app is Legacy while dark mode is currently an Android-only capability.

project readme (upstream, from github) — read inline

Ethora — SDK Monorepo

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

Folder Repository Description Status
sdk-reactjs/ ethora-chat-component React.js chat SDK — embed chat in any web app Active
sdk-reactnative/ ethora-chat-component-rn React Native chat SDK (iOS & Android) Active
sdk-android/ ethora-sdk-android Native Android SDK (Kotlin) Active
sdk-swift/ ethora-sdk-swift Native iOS SDK (Swift) Active
sdk-wordpress/ ethora-wp-plugin WordPress plugin — no-code chat widget Active
app-reactjs/ ethora-app-reactjs Full web app (React.js) — App Builder frontend Active
playground/ ethora-sdk-playground SDK testing & demo playground Active
backend-integration/ ethora-sdk-backend-integration Backend integration examples Active
mcp-cli/ ethora-mcp-server MCP CLI for IDE/agent integration Active
rag-demos/ rag_demos RAG pipeline demos & examples Active
bots/ ethora-bots Bot framework (XMPP, LLM, automation) Active
setup/ ethora-setup CLI setup tool — npx @ethora/setup Active
api/ (inline) REST API documentation (Swagger/OpenAPI) Reference
— ethora-app-react-native React Native app (iOS & Android) Legacy
— site_crawler Website crawler for RAG ingestion Active

Feature coverage across SDKs

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

Capability React.js React Native Android iOS WordPress
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.

Service URL What it is
Web app app.chat.ethora.com Sign up, create apps, get API credentials, manage chats and AI bots.
API api.chat.ethora.com REST API used by all SDKs.
API docs (Swagger) api.chat.ethora.com/api-docs/#/ Live, up-to-date OpenAPI / v2 routes.
XMPP wss://xmpp.chat.ethora.com:5443/ws Real-time messaging gateway.
SDK Playground playground.chat.ethora.com Live @ethora/chat-component playground, code export, HTTP testing.
Uptime / status uptime.chat.ethora.com Public uptime and journey checks for the Ethora platform.
Documentation API docs REST API reference. Guides and SDK docs: ethora.com/chat-sdk and ethora.com/ai-sdk.
QA environment chat-qa.ethora.com Pre-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

Set up credentials (recommended)

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):

Purpose Default value
API base URL https://api.chat.ethora.com
API base URL (versioned) https://api.chat.ethora.com/v1 (legacy), https://api.chat.ethora.com/v2 (current)
Swagger / API docs https://api.chat.ethora.com/api-docs/#/
XMPP WebSocket wss://xmpp.chat.ethora.com:5443/ws
XMPP host xmpp.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

Layer Where What it catches
L1 — Hermetic unit JVM / Swift unit test, fakes for backend Pure logic: reducers, parsers, state machines, formatters
L2 — Component UI Compose UI / SwiftUI snapshot / Vitest + RTL Single-component rendering + interaction
L3 — E2E synthetic Maestro (mobile) / Playwright (web) against a real backend Multi-screen flows, real network, cross-platform parity
L4 — Manual Tester on a real device UX 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

SDK L1 / L2 setup + how to run L3 flows
Android sdk-android/README.md → Testing — Compose UI test scaffold + JVM unit-test layer, Quickstart commands, AVD setup, full test inventory sample-android/.maestro/
iOS sdk-swift/README.md — XCTest scaffold + accessibilityIdentifier markers sample-swift/.maestro/
Web (chat component) sdk-reactjs/README.md — Vitest + RTL setup, shared data-testid IDs Playwright suite in the ethora-app-reactjs repo
React Native sdk-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)

Frequently asked questions

Is Ethora free to use?

Ethora is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Ethora do?

Messaging SDK with AI agents for web, iOS, and Android

What is Ethora written in?

Ethora is primarily written in JavaScript. Its source is publicly available at https://github.com/dappros/ethora, and it has 552 GitHub stars.