An experiment in building a better XMPP client. This time using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alexander "PapaTutuWawa e1b1ae91a4 release: Tag 0.2.1 4 months ago
android build: Bump Gradle and Android version 4 months ago
assets meta: Implement user blocking 9 months ago
ios ui: Fix icon again 11 months ago
lib style: Remove empty line 4 months ago
test test: Test the reconnection a bit more 4 months ago
thirdparty build: Improve even more 11 months ago
.gitignore build: Use build_runner for the data classes and licenses 7 months ago
.gitlint release: Tag 0.2.1 4 months ago
.gitmodules build: Improve even more 11 months ago
.metadata Initial commit 11 months ago
LICENSE Initial commit 11 months ago docs: Remove note of unmerged code 4 months ago
analysis_options.yaml style: Use those settings permanently 5 months ago
flake.lock meta: Upgrade to Flutter 3 4 months ago
flake.nix flake: Use the newest JDK version 4 months ago
moxxy.doap meta: Add missing xmlns declarations 8 months ago
pubspec.lock ui: Speed up loading of the background image in the cropper 4 months ago
pubspec.yaml release: Tag 0.2.1 4 months ago


An experimental XMPP client that tries to be as easy, modern and beautiful as possible.

The code is also available on codeberg.



Developing and Building

Clone using git clone --recursive

In order to build Moxxy, you need to have Flutter set up. If you are running NixOS or using Nix, you can also use the Flake at the root of the repository by running nix develop to get a development shell including everything that is needed.

Before building Moxxy, you need to generate all needed data classes. To do this, run flutter pub get to install all dependencies. Then run flutter pub run build_runner build to generate state classes, data classes and the database schemata. After that is done, you can either build the app with flutter build apk --debug to create a debug build, flutter build apk --release to create a relase build or just run the app in development mode with flutter run.

After implementing a change or a feature, please ensure that nothing is broken by the change by running flutter test afterwards. Also make sure that the code passes the linter by running flutter analyze. This project also uses gitlint to ensure uniform formatting of commit messages.

Also, feel free to join the development chat at

A Bit of History

This project is the successor of moxxyv1, which was written in React Native and abandoned due to various technical issues.



Special Thanks

  • New logo designed by Synoh