# Ethora SDK Feature Matrix > **Version:** 26.04 ยท **Last reviewed:** 2026-04-21 ยท Legend: โœ… Present ยท ๐ŸŸก Partial ยท ๐Ÿ›  Roadmap ยท โ€” Absent High-level capability coverage across all Ethora SDKs. Source of truth is [`features.yaml`](features.yaml). Detailed view by category, with evidence paths: [views/by-category.md](views/by-category.md). Historical archive: [historical/2021-engine-feature-list.md](historical/2021-engine-feature-list.md). ## Coverage summary | SDK | Present | Partial | Roadmap | Absent | Coverage | |---|---:|---:|---:|---:|---:| | **React.js (Web)** | 32 | 4 | 0 | 8 | 77% | | **React Native** | 27 | 6 | 1 | 10 | 68% | | **Android (Kotlin)** | 31 | 5 | 1 | 7 | 76% | | **iOS (Swift)** | 27 | 6 | 0 | 11 | 68% | | **WordPress** | 3 | 6 | 0 | 35 | 14% | _Coverage = (present + partial ร— 0.5) / 44 features._ ## SDK overview - **[React.js (Web)](https://github.com/dappros/ethora-chat-component)** โ€” Flagship SDK, fullest feature coverage. Effectively the JS/TS reference. - **[React Native](https://github.com/dappros/ethora-chat-component-rn)** โ€” Mobile React Native. Shares architecture with React.js but trails on reactions and notifications. - **[Android (Kotlin)](https://github.com/dappros/ethora-sdk-android)** โ€” Native Kotlin + Jetpack Compose. JitPack-distributed. No account provisioning APIs. - **[iOS (Swift)](https://github.com/dappros/ethora-sdk-swift)** โ€” Native SwiftUI via SPM. Tracks Android closely; no logout helper or dark mode yet. - **[WordPress](https://github.com/dappros/ethora-wp-plugin)** โ€” Bot-widget plugin, not a full chat SDK. Embeds a single bot-to-user widget. ## Full matrix | Feature | React.js (Web) | React Native | Android (Kotlin) | iOS (Swift) | WordPress | |---|---|---|---|---|---| | **Authentication** | | | | | | | Email/password signup | โœ… | ๐ŸŸก | โ€” | โ€” | โ€” | | Email/password login | โœ… | โœ… | โœ… | โœ… | โ€” | | JWT login (bring your own token) | โœ… | โœ… | โœ… | โœ… | โ€” | | OAuth / social login | โœ… | ๐ŸŸก | ๐Ÿ›  | ๐ŸŸก | ๐ŸŸก | | Anonymous / guest login | โ€” | ๐Ÿ›  | โ€” | โ€” | โ€” | | Logout | ๐ŸŸก | โœ… | โœ… | โ€” | ๐ŸŸก | | Token refresh | โœ… | โœ… | โœ… | โœ… | โ€” | | **Messaging** | | | | | | | Send text message | โœ… | โœ… | โœ… | โœ… | ๐ŸŸก | | Edit message | โœ… | โœ… | โœ… | โœ… | โ€” | | Delete message | โœ… | โœ… | โœ… | โœ… | โ€” | | Reply to message | โœ… | โœ… | โœ… | โœ… | โ€” | | Message reactions | โœ… | โ€” | โœ… | โœ… | โ€” | | @mentions | โ€” | โ€” | โ€” | โ€” | โ€” | | Typing indicator | โœ… | โœ… | โœ… | โœ… | โ€” | | Delivery status indicators | โœ… | โ€” | โ€” | โœ… | โ€” | | Message history (MAM pagination) | โœ… | โœ… | โœ… | โœ… | โ€” | | **Media** | | | | | | | Send/receive images | โœ… | โœ… | โœ… | โœ… | โ€” | | Send/receive video | โœ… | โœ… | โœ… | โœ… | โ€” | | Send/receive files | โœ… | โœ… | โœ… | โœ… | โ€” | | Audio messages | โœ… | โœ… | โœ… | โœ… | โ€” | | Inline media preview | ๐ŸŸก | โœ… | โœ… | ๐ŸŸก | โ€” | | **Rooms** | | | | | | | 1:1 direct messaging | โœ… | โœ… | โœ… | โœ… | ๐ŸŸก | | Group chat (MUC) | โœ… | โœ… | โœ… | โœ… | โ€” | | Single-room mode | โœ… | โœ… | โœ… | โœ… | โœ… | | Create room | โœ… | โœ… | โœ… | โœ… | โ€” | | Invite users to room | โœ… | โœ… | ๐ŸŸก | ๐ŸŸก | โ€” | | Leave room | โœ… | โœ… | โœ… | โ€” | โ€” | | Room metadata | โœ… | ๐ŸŸก | โœ… | โœ… | โ€” | | **Presence & Unread** | | | | | | | Online/offline presence | โœ… | โœ… | โœ… | โœ… | โ€” | | Last-seen timestamp | โ€” | โœ… | ๐ŸŸก | โ€” | โ€” | | Unread message counter | โœ… | โœ… | โœ… | โœ… | โ€” | | **Notifications** | | | | | | | Push notifications (FCM/APNS/Web Push) | โœ… | ๐ŸŸก | โœ… | โœ… | โ€” | | In-app notifications | โœ… | โ€” | ๐ŸŸก | ๐ŸŸก | โ€” | | **AI / Bots** | | | | | | | RAG bot integration | โ€” | โ€” | โ€” | โ€” | โ€” | | AI auto-response triggers | โ€” | โ€” | โ€” | โ€” | ๐ŸŸก | | Message translation | ๐ŸŸก | โ€” | ๐ŸŸก | ๐ŸŸก | โ€” | | **UI** | | | | | | | Prebuilt chat component | โœ… | โœ… | โœ… | โœ… | โœ… | | Theme customization | ๐ŸŸก | ๐ŸŸก | โœ… | โœ… | โ€” | | Dark mode | โ€” | โ€” | โœ… | โ€” | โ€” | | Custom component overrides | โœ… | โœ… | โœ… | ๐ŸŸก | โ€” | | i18n / localization | โ€” | โ€” | ๐ŸŸก | โ€” | ๐ŸŸก | | **Platform** | | | | | | | Self-hosted server support | โœ… | โœ… | โœ… | โœ… | โœ… | | Provision new app via SDK | โ€” | โ€” | โ€” | โ€” | โ€” | | Offline message cache | โœ… | ๐ŸŸก | โœ… | โœ… | โ€” | ## Methodology Statuses are based on direct code audit (file-level inspection, not just README claims). Each feature has a stable ID so it survives renames. "Partial" is used when a config / model / stub exists but the end-to-end flow isn't wired. Next scheduled review: 2026-05-01 (monthly via CI) ## Updating this matrix 1. Edit `features.yaml` โ€” the single source of truth. 2. Run `cd features/scripts && npm install && npm run render` to regenerate `README.md` and `views/by-category.md`. 3. Commit both the YAML and rendered output so diffs are visible in PRs.