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.
Gitea 5ce8f74aa7 v0.2.3 3 months ago
android meta: Change Android App ID to org.moxxy.moxxyv2 3 months ago
assets meta: Implement user blocking 9 months ago
fastlane/metadata/android/en-US meta: Add fastlane metadata 3 months ago
ios ui: Fix icon again 11 months ago
lib ui: Fix all messages being left aligned (closes #101) 3 months ago
test shared: Replace lock extension with a safeSynchronized function 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 12 months ago
LICENSE Initial commit 12 months ago docs: Add a link to IzzyOnDroid's repository 3 months ago
analysis_options.yaml style: Use those settings permanently 5 months ago
flake.lock flake: Switch back to nixpkgs-unstable 4 months ago
flake.nix flake: Switch back to nixpkgs-unstable 4 months ago
moxxy.doap meta: File Thumbnails -> Extensible File Thumnails 3 months ago
pubspec.lock meta: Update moxplatform 3 months ago
pubspec.yaml v0.2.3 3 months ago


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

The code is also available on codeberg.

Get it on IzzyOnDroid



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