๐ŸชŸBuilding on Windows


  • The following steps are verified on

  • Both Windows cmd and powershell can be used for running commands.

  • If you encounter any issues, please have a look at Troubleshooting first. If your issue is not included in the page, please create an issue or ask on Discord.

If you prefer a video tutorial click here:

video tutorial for building on windows

Step 1: Get the source code

You should fork the code instead if you wish to submit patches. You'll find information on that in Setting Up Your Repositories

git clone https://github.com/AppFlowy-IO/appflowy.git

Step 2: Install your build environment

  • Install Visual Studio 2022 build tools. Download from https://visualstudio.microsoft.com/downloads/

    • In section "All Downloads" => "Tools for Visual Studio 2022" => "Build Tools for Visual Studio 2022".

    • Launch vs_BuildTools.exe to install.

      • Choose "Desktop Development with C++"

  • Install vcpkg according to this page. Make sure to add vcpkg installation folder to your PATH environment variable.

  • Install flutter according to this page.

  • Make sure to enable the flutter stable channel

flutter channel stable
  • Enable the specified platform first if you don't enable it before and then select the desktop device.

flutter config --enable-windows-desktop
  • Fix any problems reported by flutter doctor

flutter doctor
.\rustup-init.exe --default-toolchain stable --default-host x86_64-pc-windows-msvc -y

It is a good idea to check your rustc version after this step, and compare it to the current supported one in AppFlowy. Run the command:

rustup --version

Look for rustc 1.77.2 - You can find the supported version here.

In case you need to checkout/downgrade your version, you can replace the version number in this command:

rustup default 1.77.2
  • Install cargo make

You probably need to re-open your terminal to get the cargo command in your PATH

cd AppFlowy/frontend
cargo install --force cargo-make
  • Install duckscript

cargo install --force duckscript_cli
  • Add Powershell to the PATH

Add C:\Windows\System32 to the PATH to prevent Powershell build commands crashing.

  • Install openssl

    • Download openssl_1.1.1n_win32_complete.zip from https://sockettools.com/kb/openssl-installation-packages-windows/

    • Run installer and install Openssl where you want

    • Add bin folder to the PATH (ie: G:\Compilation\OpenSSL\bin)

    • Create a new User variable (using the same window as the PATH editor): Name it OPENSSL_DIR with same value as bin folder (ie G:\Compilation\OpenSSL\bin)

Note: In cse the OpenSSL link resolves to a dead download, you can install OpenSSL from this alternative source. (From https://slproweb.com/)

  • Install perl

    • Download Perl for Windows (called Strawberry perl) from https://strawberryperl.com/ (choose x64 installer)

    • Run installer

    • Check Perl is installed with following command

perl --version
  • Install Dart extension for Visual Studio Code

  • Enable the Dart protoc_plugin

dart pub global activate protoc_plugin 20.0.1
  • For Windows 11: Activate Developer Mode

    • Go to Settings > Privacy & Security > switch ON Developer Mode

Step 3: Edit and run the application

[VS Code]

  1. Open the frontend folder located at xx/AppFlowy/frontend with VS Code.

  2. Go to the Run and Debug tab and then click AF-desktop: 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. Go to the AppFlowy/frontend/ directory.

  2. Run the following command to create the binary.

cargo make --profile production-windows-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/Windows/Release/AppFlowy/.

If using a virtual machine

  • Run Linux GUI application through x11 on windows (use MobaXterm) for instance:

export DISPLAY=localhost:10

Last updated