Open-source project
krille-chan/fluffychat avatar
krille-chan/fluffychat

FluffyChat: A Flutter-based Matrix client that prioritizes accessibility and cute design

The cutest instant messenger in the [matrix]

3,221 stars661 forksDartAGPL-3.0

At a glance

What is it?
FluffyChat is a nonprofit Matrix client written in Flutter, aiming to make encrypted messaging approachable for everyone. This review covers its features, build process, configuration options, and where it fits among Matrix clients.
Who is it for?
Adopt FluffyChat if you need a cross-platform Matrix client that runs on Android, iOS, web, and desktop, and if you value a nonprofit project with a friendly interface. Do not adopt it if you require a fully customizable or enterprise-grade client, since configuration is limited to MDM on mobile and a config.json on web.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • krille-chan/fluffychat3,221 ★ · +154
Star history
Repository2026-08-222026-10-22
krille-chan/fluffychat3.1k3.2k

154 Stars in the last 61 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What FluffyChat solves and who it targets

FluffyChat is a Matrix client written in Flutter, positioned as an open source, nonprofit messenger that is easy to use and accessible. The project description calls itself 'the cutest instant messenger in the [matrix]', which signals a focus on friendliness over raw power. It targets individuals and communities who want a Matrix client that does not feel technical or intimidating. The feature list includes standard messaging, video calls via Matrix RTC, voice messages, location sharing, push notifications, and end-to-end encryption. That combination makes it a candidate for users who want a modern chat app without abandoning the decentralized Matrix protocol. The nonprofit angle matters: the README emphasizes that the goal is to create an open source messenger for everyone, which distinguishes it from commercial clients that might monetize data. For engineers evaluating it, the key question is whether the Flutter-based approach and the 'cute' branding align with their deployment needs.

How the app is built and what that implies for maintenance

The repository is written in Dart, using Flutter for the UI across platforms. The build process requires both Flutter and Rust, because the project uses Vodozemac, a Rust library for Matrix encryption, as the README shows in the web build step. That dual-toolchain requirement is a real maintenance consideration: any team building FluffyChat from source must maintain both a Dart/Flutter environment and a Rust toolchain, plus the platform-specific dependencies. On Linux, the README lists packages like libsecret-1-dev and libwebkit2gtk-4.0-dev, which are typical for desktop Flutter apps but add setup overhead. The project provides scripts for common tasks: `./scripts/prepare-web.sh` installs Vodozemac for web builds, and `./scripts/build-ios.sh` handles iOS builds with environment variables for signing. This scripted approach reduces manual steps, but it also means the build process is tied to the project's own conventions. For a small team, that is manageable; for a large organization, the added complexity might not be worth it compared to using a prebuilt binary.

Getting it running: build commands and configuration keys

The README gives concrete build steps. After cloning the repository, you choose a target platform. For Android, `flutter build apk` produces an APK. For iOS, you need a Mac with Xcode and set environment variables like `FLUFFYCHAT_NEW_TEAM` and `FLUFFYCHAT_NEW_GROUP`, then run `./scripts/build-ios.sh`. For web, run `./scripts/prepare-web.sh` followed by `flutter build web --release`. Desktop builds use `flutter build linux --release`, `flutter build windows --release`, or `flutter build macos --release`. Configuration is minimal. On web, you can serve a `config.json` file next to the app. The README includes `config.sample.json` as an example, and stresses that all values are optional. It explicitly advises to only set the values you need, such as `defaultHomeserver` if you want to change the default server. On Android and iOS, configuration is handled through Mobile Device Management (MDM), supported since v2.10.0. The README points to `/android/app/src/main/res/xml/app_restrictions.xml` for the populated configuration on Android. That is a narrow configuration surface: no command-line options or environment variables for runtime settings, which is a limitation for power users.

Feature depth and the matrix RTC dependency

The feature list is broad: unlimited private and public group chats, public channels with thousands of participants, group moderation, spaces, custom emotes and stickers, encrypted chat backup, and emoji verification with cross-signing. Video calls rely on Matrix RTC, which is a relatively new specification. That is a double-edged sword. On one hand, it means FluffyChat is aligned with the future of Matrix calling. On the other hand, Matrix RTC may not be fully supported by all homeservers or may change as the spec evolves. The README does not mention any fallback for older call protocols, so if your homeserver lacks Matrix RTC support, video calls may not work. That is a genuine limitation to verify before adopting FluffyChat for a team that depends on video conferencing. The project also mentions push notifications, but the README only says they are supported; it does not detail how they are implemented, which could involve Firebase or Matrix's push gateway. The build script `add-firebase-messaging.sh` suggests Firebase is optional, so push on non-Android platforms might rely on other mechanisms.

Configuration and MDM: a narrow but deliberate surface

FluffyChat's configuration approach is unusual for a chat client. On mobile, it uses MDM restrictions, which are typically deployed by enterprise administrators, not individual users. The README shows an example in `app_restrictions.xml`, and the `config.sample.json` serves as a template for web deployments. The instruction to 'only modify the values you really need' is a clear design philosophy: keep the client simple, avoid exposing a sprawling settings menu. That is a trade-off. For a home user, MDM is an awkward way to set a default homeserver; they would have to edit a config file on web or rely on the app's default. For an organization that manages devices, MDM is a clean way to enforce server settings. The web config.json approach is straightforward, but it requires serving the file correctly, and the README does not specify the exact file path beyond 'at the same path as fluffychat'. That ambiguity could cause deployment hiccups. Overall, the configuration surface is minimal, which aligns with the 'easy to use' goal but limits flexibility.

Alternatives and how FluffyChat differs in approach

The main alternative in the Matrix client space is Element, which is also open source but takes a more feature-heavy, enterprise-oriented approach. Element offers a web app, desktop clients, and mobile apps, with extensive configuration and a broader set of admin tools. FluffyChat differentiates itself by focusing on a simpler, friendlier user interface and a nonprofit model. The README emphasizes 'cute' design and accessibility, which is a deliberate contrast to Element's more utilitarian look. Technically, both use Matrix's encryption and cross-signing, but FluffyChat's build is Flutter-based, while Element uses web technologies and native wrappers. That means FluffyChat can share a single codebase across platforms, which might reduce maintenance for the project, but it also means the app's performance and platform integration depend on Flutter's capabilities. For a user who wants Matrix with a gentler learning curve, FluffyChat is a reasonable choice; for a user who needs advanced moderation or custom integrations, Element's richer ecosystem is safer. The README does not mention any migration tools, so switching from Element to FluffyChat would require re-verifying your account setup.

Maintenance, licensing, and practical caveats

FluffyChat is licensed under AGPL-3.0, which is a strong copyleft license. That has implications for anyone who wants to modify and redistribute the app: your changes must be released under the same license, and if you offer the app as a network service, you may need to provide source code to users. That is not legal advice, but it is a factor to consider before forking or embedding the code. The project is actively maintained, with releases like v2.9.1 pushed in August 2026, and a recent release candidate. The README mentions that integration tests require Docker and a preparation script, which indicates a testing setup that could be useful for contributors but also adds tooling requirements. The translation effort is notable: the README claims more than 12 languages, which shows community involvement. However, the README does not document an upgrade path or a changelog in detail, so you would need to check the repository for breaking changes between versions. The build process also requires Rust, which is an unusual dependency for a Dart project; that adds a learning curve for developers who only know Flutter. For a production deployment, you should verify that the version you build matches the features you need, especially around Matrix RTC and push notifications.

Editorial conclusion

Adopt FluffyChat if you need a cross-platform Matrix client that runs on Android, iOS, web, and desktop, and if you value a nonprofit project with a friendly interface. Do not adopt it if you require a fully customizable or enterprise-grade client, since configuration is limited to MDM on mobile and a config.json on web. Before deploying, verify that your Matrix homeserver supports all the features you need, especially Matrix RTC for video calls, and test the build process on your target platform, as it requires both Flutter and Rust toolchains.

Frequently asked questions

What is FluffyChat used for?

It is an open source, nonprofit Matrix client written in Flutter, with the goal of an instant messenger that is easy to use and accessible for everyone. Features include messages, images and files, video calls over Matrix RTC, voice messages, location sharing, push notifications, spaces, and large public channels.

What is FluffyChat?

A Matrix client built with Flutter and Dart, licensed under AGPL 3.0 or later, shipping for Android, iOS, web, Linux, Windows, and macOS from a single codebase. Configuration works through mobile device management on Android and iOS since version 2.10.0, and through a config.json file on web.

Is FluffyChat open source?

Yes. It is described as an open source, nonprofit Matrix client released under the AGPL 3.0 or later licence, with the source, the sample configuration, and the build scripts all in the repository.

Is FluffyChat secure?

Its feature list includes end to end encryption, encrypted chat backup, and emoji verification with cross signing. The web build installs Vodozemac during its preparation step, which is the native component used for encryption in the browser.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/krille-chan-fluffychat.svg)](https://hysenlabs.com/projects/krille-chan-fluffychat)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/krille-chan-fluffychat.svg)](https://hysenlabs.com/projects/krille-chan-fluffychat)