- Connecting Communities: bridges many popular messaging apps
- Extensible: support for messaging apps provided by plugins which can be enabled/disabled by the user
- Easy to run: able to run in Docker with multiple database options
- Based on Go: uses the strong typing, performance and simplicity of Go
If you've ever had a community, chances are you talk to them in many different places. Over time, you end up with fragmentation as your community starts to grow. Many people end up using multiple apps for just your community, people get upset about the differences between apps, and it becomes a mess.
Now, you could just say "X is the only chat app we're using from now on", but that risks alienating your community.
What other options are there? Bridging! Everyone gets to use their preferred app, gets the same messages, and is on the same page.
Many other bridges exist, however, many of them have issues. Some bridges didn't play well with others, others didn't handle attachments, others refused to handle embedded media, and it was a mess. With lightning, I wanted to solve these issues by bringing many platforms with one tool, having it handle everything.
Currently, Discord, Guilded, Revolt, and Telegram are supported. Support for more platforms is possible to do, but support for these platforms should be similar to other supported platforms and messages should be presented as similarly to other messages as possible.
If you would like support for another platform, please open an issue! I'd love to add support for more platforms, though there are a few requirements they should fulfil:
- having a pre-existing substantial user base
- having Go libraries with decent code quality
- having rich-messaging support of some kind
The Matrix Specification is really difficult to correctly handle. Solutions that work well aren't easy to implement, and I've tried implementing support via an appservice, but, with MSC4144, I'm hoping that this will become easier to do