No description
This repository has been archived on 2022-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2020-06-25 00:14:57 +02:00
doc add olm api decls link to doc 2020-06-25 00:14:57 +02:00
lib olm prototype from tutorial 2020-06-24 22:52:50 +02:00
prototypes olm prototype from tutorial 2020-06-24 22:52:50 +02:00
scripts show version before login and link to release 2020-03-23 22:46:31 +01:00
src pass vm field to emitChange 2020-06-24 22:43:29 +02:00
.editorconfig wip 2019-02-17 23:58:01 +01:00
.eslintrc.js its syncing, sort off 2019-02-10 21:25:46 +01:00
.gitignore ignore folders to store exports 2019-12-23 14:29:05 +01:00
icon.png add offline availability with service worker and appcache 2019-09-15 14:32:12 +02:00
index.html make view gallery of views in different states 2020-04-30 18:28:21 +02:00
package.json olm prototype from tutorial 2020-06-24 22:52:50 +02:00
README.md Update README.md 2020-06-03 12:38:47 +00:00
yarn.lock olm prototype from tutorial 2020-06-24 22:52:50 +02:00

Brawl

A minimal Matrix chat client, focused on performance, offline functionality and working on my Lumia 950 Windows Phone.

Status

Brawl can currently log you in, or pick an existing session, sync already joined rooms, fill gaps in the timeline, and send text messages. Everything is stored locally.

Here's an (outdated) GIF of what that looks like, also see link below to try it out: Showing multiple sessions, and sending messages

Why

I started writing Brawl both to have a functional matrix client on my aging phone, and to play around with some ideas I had how to use indexeddb optimally in a matrix client.

For every interaction or network response (syncing, filling a gap), Brawl starts a transaction in indexedb, and only commits it once everything went well. This helps to keep your storage always in a consistent state. As little data is kept in memory as well, and while scrolling in the above GIF, everything is loaded straight from the storage.

If you find this interesting, feel free to reach me at @bwindels:matrix.org.

How to use

You can try Brawl here, or try it locally by running yarn install (only the first time) and yarn start in the terminal, and point your browser to http://localhost:3000.