AppFlowy Docs

Building on Linux

  • The following steps are verified on
    • lubuntu 20.04 - X86_64
    • Linux Mint 20.3 - 86_64
    • ubuntu 20.04 - aarch64
    • redhat - X86_64
    • Arch Linux - X86_64
    • Deepin - X86_64
    • Raspberry Pi OS - aarch64
  • You may need to disable hardware 3D acceleration if you are running AppFlowy in a VM. Otherwise, certain GL failures will prevent the app from launching.
  • If you encounter any issues, have a look at Troubleshooting first. If your issue is not included in the page, please create an issue or ask on Discord.
There is a known issue with Ubuntu 22.04, Fedora 36, and PopOS 22.04: Failed to load dynamic library '': cannot open shared object file: No such file or directory The issue can be fixed by installing the required missing libraries:
# Fedora
sudo dnf in openssl1.1.x86_64 # Workstation
rpm-ostree upgrade && rpm-ostree install openssl1.1.x86_64 # Silverblue
# Ubuntu & PopOS
$ wget
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
If the above Ubuntu & PopOS link is expired or returns 404 then consider searching for libssl1.1_1.1.1 on the following page.

Step 1: Get the source code

Clone the source code from our Github project.
You should fork the code instead if you wish to submit code to AppFlowy. You'll find information on that in Setting Up Your Repositories
git clone

Step 2: Install your build environment

Feel free to ask questions on our Discord so that we may refine this document and make the process as easy as possible for you.
  • Install system prerequisites
sudo apt-get install curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev unzip
sudo pacman -S curl base-devel sqlite openssl clang cmake ninja pkg-config gtk3 unzip libkeybinder3 xdg-user-dirs
Flutter version 3.3.10 is the version that AppFlowy is built and tested on. If you installed Flutter before, make sure the version matches AppFlowy's. You can get the the Flutter version using this command:
flutter --version
git clone
cd flutter
echo "export PATH=\$PATH:"`pwd`"/bin" >> ~/.profile
export PATH="$PATH:`pwd`/bin"
cd ..
  • Run the setup script from the base directory
cd appflowy
If you get the warning as shown above, run following command:
export PATH="$PATH":"$HOME/.pub-cache/bin"

Step 3: Build AppFlowy (Flutter GUI application)

  • Change to the frontend directory
cd frontend
  • Optionally if you want to Build appflowy-sdk-dev (dart-ffi)
cargo make --profile development-linux-x86_64 appflowy-sdk-dev
cargo make --profile production-linux-x86_64 appflowy-sdk-release
  • Build AppFlowy. You'll find the binary in app_flowy/product/linux/AppFlowy/
cargo make -p development-linux-x86_64 appflowy-linux-dev
cargo make -p production-linux-x86_64 appflowy-linux

Step 4: Run the application

cd app_flowy/product/0.0.5/linux/Debug/AppFlowy
  • A new window as shown below will show up after you run the application:
  • If using a virtual machine
    • Run Linux GUI application through x11 on windows (use MobaXterm) for instance:
export DISPLAY=localhost:10

Step 5: Edit and run the application

[VS Code]
  1. 1.
    Open the frontend folder located at xx/AppFlowy/frontend with VS Code.
  2. 2.
    Go to the Run and Debug tab and then click AF: Clean + Rebuild All for the first time running.
If you encounter any issues, have a look at Troubleshooting first. If your issue is not included in the page, please create an issue or ask on Discord.

Building in release mode

  1. 1.
    Go to the AppFlowy/frontend/ directory.
  2. 2.
    Run the following command to create the binary.
cargo make --profile production-linux-x86 appflowy
The scripts are located in the AppFlowy/frontend/Makefile.toml file.
The resulting binary file is located in AppFlowy/frontend/app_flowy/product/x.x.x/linux/Release/AppFlowy/.