An Elm-based Matrix client.
Go to file
Danila Fedorin 71845ae091 Fix sender names not being used 2019-10-09 12:52:59 -07:00
screenshots Update screenshot 2019-09-07 00:11:13 -07:00
src Fix sender names not being used 2019-10-09 12:52:59 -07:00
static Add support for m.notice and m.emote 2019-09-08 15:00:52 -07:00
.gitignore Add more ignored files via 2019-03-17 12:38:35 -07:00
LICENSE Create LICENSE 2019-03-06 12:33:50 -08:00 Add clickable badge for the room 2019-03-16 20:49:10 -05:00
elm.json Add markdown rendering for messages that have it. 2018-12-20 22:59:31 -08:00
index.html Add the basic HTML file. 2018-12-23 19:20:09 -08:00


A minimalist client for the Matrix chat protocol. Come chat with me:


Main View

Login View



Riot, the flagship Matrix client, is slow. Switching rooms has a noticable delay (probably around several hundred milliseconds). History loading causes strange jumps in the scroll position. Scylla aims to be faster and more responsive, while still maintaining all the necessary features for a chat client.

What can it do?

Scylla currently supports the following features:

  • Sending and receiving messages
  • Sending and receiving images and files
  • Converting Markdown into HTML for specially formatted messages
  • Loading old history in a room

Should I use Scylla?

Maybe. Scylla aims for a more minimalistic experience, remeniscent of IRC. It doesn't strive to have the rich chat client features that Riot goes for, and attempts to polish the common tasks. If you would like a more advanced chat client, stick with Riot. However, if you prefer polished minimalism, Scylla might be the client for you.

Building Instructions

If you'd like to build Scylla, you need to take the following steps:

  1. Install Elm and Sass

  2. Compile Scylla's Elm and Sass source files:

elm make src/Main.elm --output static/js/elm.js --optimize
sass static/scss/style.scss static/css/style.css
  1. Open the provided index.html file in your browser. You can't do it by just loading the file in Chrome; you need to use an actual web server. I use Python2's built in HTTP server as such:
python2 -m SimpleHTTPServer

If you use this, visit the address localhost:8000 once the server starts.

  1. If you'd like to host Scylla, you need to be aware that it uses URLs as paths. Because of this, in order for refreshing the page to work as intended, you need to make sure that all URLs that don't start with "static" serve the same index.html file. I use the following (Apache) configuration:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/static/
RewriteRule .* "/path/to/Scylla/index.html"