Roadmap

tavrn is built in phases. Every phase ends with something usable, and the order was chosen so that the decisions that affect everything (identity, message format, encryption) were settled first. Phases 0 to 5 are done and phase 6 is in progress; tavrn is pre-release software before its first stable release. There are no dates here: things ship when they are ready and tested.

Ideas and wishes are welcome in Discussions (category “Ideas”); concrete feature requests go to the repository that owns the code.

Done

Phase 0: Foundation

The protocol document (identities, addresses, capabilities, the message envelope), the OpenAPI skeleton, the data model, the container build, the design tokens and the responsive base layout for phone, tablet and desktop, and a test infrastructure on every level (Rust tests against a real database, unit tests for the TypeScript packages, browser tests with Playwright) with the first real tests.

Phase 1: Text chat on a single node

Accounts with invites, optional captcha and e-mail confirmation, password reset; rooms with categories, channels, roles and permission overrides; invites, kick, ban and timeout; messages with Markdown, editing, attachments within node limits, reactions, pins, custom emojis and optional GIF search; auto-moderation, bulk deletion with a preview, an audit log; realtime over WebSocket; room, user and node administration in the web client; English and German.

Phase 2: End-to-end encryption

The encryption core (Rust, OpenMLS, compiled to WebAssembly), device keys signed by the user’s identity key, MLS groups for channels, DMs and group DMs, encrypted attachments, the history backup for new devices and the identity reset. A mandatory second factor (TOTP or passkeys, with recovery codes) for every password account, and the master secret wrapped on the home node under a recovery key or a passkey’s PRF output, never under a password. Friends and blocks, “security key changed” notices, ghost member warnings, lazy history loading with unread and mention counts.

Phase 3: Federation

Discovery through /.well-known/tavrn, node signing keys with rotation, federation tokens and federated sessions, joining rooms on other nodes, the conversation index on the home node, friends and DMs across nodes, invite delivery, node blocklists and domain bans, the decentralized node directory with “Discover”, signing in with an account of another node, conformance checks against peers, safety numbers and QR verification, and device signatures on plaintext messages. Later in the cycle: delegation of an identity domain to another host and a DNS record fallback.

Phase 4: Voice, video, profiles and the whiteboard

LiveKit supervised inside the image, voice channels with bitrate and user limits, mute and deafen, screen sharing and webcams with a tile view, end-to-end encrypted media with frame keys from MLS, the soundboard, graceful reconnects, ICE over TCP and an embedded TURN server, and a connection test. Voice and video settings (noise suppression, push-to-talk, background blur), calls in DMs and group DMs, profiles with animated avatars and presence (also across nodes, reported by the client to every node it has a session on), message requests from non-friends, a shared end-to-end encrypted whiteboard, and a polish round (context menus, moving members between channels, notifications, upload categories, spoilers, link previews, files channels, history for new members of encrypted channels, attachment encryption at rest on the node).

Phase 5: Platform maturity

Applications and bots with scopes, add links and a consent screen, “no bots” zones, commands, incoming webhooks (including sealed, write-only webhooks for encrypted channels), outgoing event subscriptions, the bot runtime and an example bot; single sign-on with OpenID Connect and group mapping; search (on the node for plaintext channels, a local encrypted index for encrypted ones); announcement and forum channel kinds; the node admin interface and a doctor command for operators; per-user and per-room limits; optional Valkey to run one node as several instances; legal tooling (takedown notices, legal pages, terms acceptance, data export and account deletion) and a WCAG 2.2 AA accessibility audit with automated checks.

Finished as part of phase 5 after the split: threads in text channels and forum posts with titles, tags and sorting; web push notifications through the home node; reports with evidence, a moderation inbox and content rules for plaintext channels (word lists, link filters) next to the metadata-based auto-moderation; room ownership transfer (also offered when an owner deletes their account); and command interactions kept in Valkey, so a pending bot interaction survives the restart of the instance that took it when a node runs as several instances.

After phase 5 the project was split into its public repositories (see the README).

In progress

Phase 6: Desktop and mobile apps

Native apps built from the same web code base. The desktop app for Windows (a Tauri shell) and Linux (an Electron shell) and the Android app exist, macOS builds are experimental; iOS follows.

Done so far in the desktop app:

Done so far in the Android app (org.tavrn.app, Android 8 and newer, an APK on every release): the same client with push through UnifiedPush (no Google services), voice in the background with a notification, an audio output switch, the front and back camera, screen sharing of the whole screen, unlocking with fingerprint, face or PIN through Android’s keystore, passkeys in the app on nodes that accept its origin, tavrn:// links and downloads.

Done in the same cycle in the protocol, the node and the clients:

Next in phase 6:

Native apps also narrow the inherent limit of browser-based encryption, where the web client is code served by a node: the desktop app runs only the client it was installed with.

Planned

Phase 7: Account resilience

Keeping an account usable when its home node fails, without turning accounts into a multi-master system:

Encryption is untouched by this: keys stay with the user, and replicas see only what the home node sees.

Also planned

Open ideas

Smaller items that are agreed in principle but not scheduled:


This page is generated from tavrn/docs/roadmap.md (CC-BY-4.0) when the website is built; its links were adapted for this site.