#matrix-chat #e2ee #dioxus #chat #desktop

app synpad

A full-featured Matrix chat client built with Dioxus

1 unstable release

Uses new Rust 2024

new 0.1.0 Mar 6, 2026

#2 in #dioxus

AGPL-3.0-only

1.5MB
24K SLoC

Synpad

A full-featured Matrix chat client built with Rust and Dioxus.

Synpad aims for near-complete feature parity with Element Web, delivering a fast, secure, and cross-platform Matrix experience.

Features

Messaging

  • Rich Markdown formatting, inline code, and code blocks
  • Message editing, deletion, replies, and threads
  • Reactions, read receipts, and typing indicators
  • Polls, voice messages, and location sharing
  • Message forwarding and edit history
  • Message effects (confetti, fireworks)

Encryption & Security

  • End-to-end encryption enabled by default for private rooms
  • Cross-device verification (QR code and emoji)
  • Key backup, recovery, export, and import
  • Secure session persistence

Rooms & Spaces

  • Room creation with encryption, permissions, and alias configuration
  • Space hierarchy navigation and space-based filtering
  • 23 configurable room permissions
  • Room upgrades and chat history export (HTML, plain text, JSON)

Calls & Media

  • Voice and video calls via Element Call integration
  • Screen sharing and video rooms
  • Media uploads with progress tracking
  • Image viewer and file downloads

Search & Navigation

  • Spotlight search (Ctrl+K) for rooms and users
  • Server-side and local persistent search index
  • Breadcrumb navigation for recent rooms

Customization

  • Light and dark themes with custom theme support
  • Bubble layout option
  • Configurable notification rules
  • Keyboard shortcuts

Tech Stack

Layer Technology
Language Rust
UI Framework Dioxus 0.7
Matrix SDK matrix-rust-sdk
Async Runtime Tokio
State Store SQLite (bundled)
Markdown comrak + ammonia

Getting Started

Prerequisites

Desktop (default)

# Development
cargo run --bin synpad

# Or with Dioxus hot-reload
dx serve

# Release build
cargo run --bin synpad --release

Packaging

# Desktop package
dx bundle --release --desktop

# Android package
dx bundle --release --android --features mobile --no-default-features

# iOS package
dx bundle --release --ios --features mobile --no-default-features

Mobile packaging requires the platform SDKs:

  • Android: Android SDK + NDK available to the Dioxus CLI toolchain
  • iOS: Xcode and Apple signing tools on macOS

Web

dx serve --features web
dx build --release --features web

Mobile

dx serve --android --features mobile --no-default-features
dx serve --ios --features mobile --no-default-features

Project Structure

src/
  app.rs            # App routing and global state initialization
  main.rs           # Entry point (desktop/web/mobile)
  auth/             # Login, registration, SSO, OIDC, password reset
  client/           # Matrix SDK client setup, session management, sync
  state/            # Global application state and signals
  room/             # Room view, timeline, composer, calls, media, widgets
  room_list/        # Room list, spaces, filtering, room creation
  right_panel/      # Room info, members, threads, files panels
  components/       # Reusable UI components
  settings/         # User settings pages
  encryption/       # E2E encryption, verification, key management
  notifications/    # Desktop notifications and push rules
  cache/            # Media and avatar caching
  persistence/      # Session and state persistence
  theme/            # Theming and design tokens
  i18n/             # Internationalization
  utils/            # Markdown, HTML rendering, search, formatting
  layouts/          # Main and auth layout containers
  pages/            # Top-level page components
assets/
  css/main.css      # Application styles
  fonts/            # Font files
  icons/            # Icon assets

License

AGPL-3.0-only

Dependencies

~93–155MB
~2.5M SLoC