Skip to content

Repository files navigation

Matrix Single HTML Client

A minimalistic, mobile-friendly Matrix chat client that builds to a single HTML file.

⚠️ Warning - This whole client is still very much experimental.

Features

  • Login via username, password, and server URL
  • Room list with search, unread badges, and last message preview
  • Send and receive text messages
  • Send and view images (with lightbox)
  • Send and view videos (inline player + lightbox)
  • Calendar room for scheduling messages
  • Session persistence (stays logged in across refreshes)
  • Mobile-friendly responsive layout
  • Dark theme

Screenshots

Login Screen

login

Room selection

room selection

Manage multiple matrix accounts

A swarm is a group of synchronized Matrix accounts that operate as a single logical identity. Each swarm member (account) joins rooms together, shares encryption keys, and can send or receive messages on behalf of the swarm. This setup allows users to continue communicating even if one or more home servers become unavailable.

Motivation (click to reveal)

Matrix currently ties user availability and message continuity to the uptime of a single home server. If that server goes down, users lose access to their rooms, and communication is interrupted. Swarms solve this by creating redundant, synchronized identities capable of message failover and shared state synchronization.

swarm manager

Favourites

Working across several chats and need to keep important messages in one place? Favourites let you collect messages from any room into named lists. Create lists (e.g. "London Project", "Meeting notes"), turn on select mode in any chat, choose the messages you care about, and add them to one or more lists. Each list is a timeline of links to those messages: when you open a list, Masi resolves each link and shows the actual message content, so you get a single view of your saved snippets from different conversations - like a shared board of references without leaving the app.

favourites-add

favourites-view

Playlist

Turn any favourites list into a playlist: a fullscreen, auto-advancing slideshow. Hit play on a list (from the sidebar or the list’s header) to step through its items-images and, if you enable it in settings, text messages-with configurable durations. Handy for review sessions, standups, or any time you want to cycle through saved content hands-free.

presentation

Calendar

Use the Calendar room to schedule messages for later. Pick a destination room, choose a date and time, write the message, and optionally attach images or videos. Masi stores scheduled items in a private per-swarm Calendar room, then sends them when the app is running and the swarm has access to the destination room. Failed sends are visible in the calendar and can be retried or reset

calendar demo

Development

npm install
npm run dev

Build

npm run build

The output is a single self-contained HTML file at docs/index.html. You can open it directly in a browser or host it anywhere.

About

🤖 A portable Matrix client that builds to a single HTML file, and focuses on making favourites playable and backups reliable with a mobile-first layout.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages