An easily deployable, scalable Matrix homeserver powered by the BEAM, currently in early development.
As RadioBeam is currently in early development, the first and foremost goal is to reach full compliance with the latest Matrix specification (as of writing, v1.11). This includes passing test suites such as Complement.
After achieving (and maintaining) core spec compliance, additional unstable modules (like those described in Matrix 2.0) may also be implemented before they are fully stabilized in the spec.
Once RadioBeam is spec compliant, building out admin tooling and a deployment process is the planned next step. I primarily want to make sure small (single-user or friends & family) deployments are a nice out-of-the-box experience by supplying great documentation, shipping with secure defaults, and giving admins the tooling needed to effectively manage their instance.
One of my goals/challenges for this project is implementing as much as possible without leaving the VM, primarily to play with Mnesia and Erlang distribution. While this restriction is mainly for fun, it provides an opportunity to build a distributed homeserver in the longer term.
RadioBeam is in early development (pursuing goal #1). I'm currently working on implementing the Client-Server API in my free time. Contributions are welcome, especially from fellow Elixir, Erlang, or Matrix enthusiasts :)
I will be adding issues to create a rough roadmap, and am happy to assign an open issue to you if you leave a comment. Please also give Development Philosophy below a quick read before contributing.
Because I'd like to see this project progress to at least the first couple of Goals, development will be on the slower side in the name of creating a sustainable codebase. By "sustainable" I mean:
The result, I hope, will be a more reliable homeserver with a codebase that is nice to work in and has little tech debt.