What if the Discord client was blazingly fast?
You can find us on Discord: https://discord.gg/QafRarw25u
The fastest way to give it a go is at https://app.openbonfire.dev/! Note that at the time it will most likely require a token to login! This is because everything in the web version is proxied, so Discord requires captcha (which isn't implemented in Bonfire quite yet).
We now offer nightly builds! Please check out the github actions for the latest builds. You must be logged into to GitHub to view these builds.
NOTE: Bonfire is in it's very early stages of development. It is absolutely NOT ready for regular usage.
A modern alternative to the Discord client. Use Discord without ever having to touch the mobile Discord client.
| Platform | Support Level | Notes |
|---|---|---|
| Android | 🟩 Supported | Fully functional |
| iOS | 🟩 Supported | Functional but needs testing |
| Windows | 🟩 Supported | Fully functional |
| MacOS | 🟩 Supported | Hypothetically close to working but needs fixes |
| Linux | 🟩 Supported | Fully functional |
| WearOS | 🟨 Partial | Works but requires manual token input |
| Web | 🟩 Supported | Functional but requires token login |
To start, lets outline a few things.
-
This is not a seperate platform. You login with Discord, you are using all of Discord's features, but through the interface we've made instead of through Discord's.
-
This is against TOS. Don't do use this unless you have some risk tolerance. I have never gotten banned in the development of Bonfire, but that isn't to say it can't happen.
-
Bonfire is for all platforms. The goal motivation for the project is mobile, as that's where current modding is far worse, however it works great on Web, Windows and Linux as well!
-
Extensions are planned. We plan on using (wasm_run)[https://github.com/juancastillo0/wasm_run] to allow for users to extend the functionality of Bonfire to their liking, and we also plan on hosting a marketplace where users can publish their plugins / download the plugins other people make.
There's a few projects that OpenBonfire uses and maintains, which can be found in our org. Let's just talk about the big ones.
- firebridge: A fork of nyxx (a bot API for Dart) that allows the usage of user tokens. This is where most of the networking logic happens.
- fireview: A cross-platform webview API that combines multiple webview frameworks. We recently switched away from this because of conflicts on Windows and Linux. Ideally this is what we use in the future.
| Feature Category | Sub-feature | Status | Notes |
|---|---|---|---|
| Login | WebView-based login | 🟩 Complete | |
| Web Login | 🟨 Partial | Requires manual token input | |
| WearOS login support | 🟥 Missing | Requires compiling with hard-coded token | |
| Messaging | Sending Messages | 🟩 Complete | |
| Cache Messages | 🟩 Complete | ||
| Message View | 🟨 Partial | Missing bidirectional requests | |
| Context Actions | 🟨 Partial | Edit, delete, etc. partially implemented | |
| Event Actions | 🟨 Partial | Edit, delete, etc. partially implemented | |
| Embeds | 🟩 Complete | ||
| → YouTube embeds | 🟩 Complete | ||
| → Tenor videos | 🟩 Complete | ||
| → Attachments | 🟩 Complete | ||
| →→ Image Attachments | 🟩 Complete | ||
| →→ Video Attachments | 🟩 Complete | ||
| →→ Audio Attachments | 🟩 Complete | With mobile playback support | |
| Notifications | 🟩 Complete | ||
| Unreads | 🟨 Partial | Somewhat buggy | |
| Threads | 🟥 Missing | ||
| Member List | 🟨 Partial | ||
| → Base View | 🟩 Complete | ||
| → Networking | 🟩 Complete | Handled in firebridge | |
| → Member Search | 🟥 Missing | ||
| Friends | 🟨 Partial | ||
| Guilds | Guild List | 🟩 Complete | |
| Guild Networking | 🟩 Complete | ||
| Guild Organization | 🟩 Complete | ||
| → Guild Order | 🟩 Complete | ||
| → Guild Names | 🟩 Complete | ||
| → Guild Folders | 🟩 Complete | ||
| Voice/Video | Voice Chat | 🟥 Missing | Planned but difficult to implement |
| Camera Chat | 🟥 Missing | Planned but difficult to implement | |
| Screen Sharing | 🟥 Missing | Planned but difficult to implement |
Not exhaustive - there's a lot of stuff to do
- Clone Bonfire
- Run
flutter pub run - Run
dart run build_runner watch -din a seperate terminal - You are on your way!
You may encounter issues on Linux (usually with packaging)
- libmpv cannot be found: Download
libmpv/libmpv-devel(package name varies per distro). If you get an issue in adjacent tolibmpv cannot be foundand it is installed (particuarly on Fedora), runsudo ln -s /usr/lib64/libmpv.so.2 /usr/lib64/libmpv.so.1. This issue also appears when running the release varient from GitHub. I will eventually bundle the depend or apply this fix in the library itself. This issue is tracked at #3. - various media kit build errors: You need
mpv/mpv-devel. Fedora will require you to follow the fix for build issue 1. - symbol lookup error: /lib64/libmpv.so.2: undefined symbol: vkCreateXlibSurfaceKHR You need to run
export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATHin the same terminal you run bonfire from. This path should correspond to the location that libmpv is stored. I am looking to implement a proper fix for this.
Don't forget to run dart run build_runner watch -d before developing! This is required when using freezed and riverpod.
We are looking for contributors! I would absolutely love to get this project completed, but it's pretty difficult time-wise. The pacing when I have time to work on it goes pretty fast though, so more people pitching in would be fantastic!
