LogoLogo
  • AppFlowy
    • ⭐Start here
      • Welcome to AppFlowy Docs
      • How to get help
      • Install AppFlowy
    • 🛠️Installation
      • 🖥️System Requirements
      • 💿Installation methods
        • Mac / Windows / Linux Packages
          • Installing on Linux
            • Installing & Setting up Flutter on Linux from Source
        • Docker
    • 🌱Community
      • 🤙Get in contact
      • 📔AppFlowy Mentorship Program
        • Program Guidance
        • Proposal Template
        • Pull Request Template
        • Mentorship 2023
          • Mentee Projects
            • Calendar View for AppFlowy Database
            • Custom Themes
            • Shortcuts and Customized Hotkeys for AppFlowy
            • Table
            • ⭐Favorites
            • Code Block
            • Outlines
            • Importers
            • AI Writers
            • Templates
          • Project Ideas
      • ✍️Write for AppFlowy
        • 📃Drafts
          • [Draft] Use Case: Software Engineer
          • [Draft] Use Case: High School Students
          • [Draft] How to add a new property to appflowy database
      • 🍂Hacktoberfest
    • 🛣️Roadmap
    • 🌋Product
      • 💽Data Storage
      • 🎨Customize and Style Content
      • ⏮️Duplicate, Delete, and Restore
      • 💎Databases
        • 🔢Database Properties
        • 🗃️Manage Properties
      • Ⓜ️Markdown
      • ⌨️Shortcuts
      • 🪄AppFlowy AI
      • 🦙AppFlowy Local AI - Ollama
      • 🎨Themes
      • ☁️AppFlowy Cloud
      • 🧩AppFlowy Plugins
        • Table-view Databases
        • Kanban Board
        • Calendar
        • Auto Generator
        • Smart Edit
        • Code Blocks
        • Math Equations
        • Cover
        • Emoji
  • Documentation
    • 💎Software Contributions
      • 🟢Get started
      • 💀Architecture
        • Frontend
          • Tauri
            • 🗺️CodeMap
          • Web
            • 🌟Design Philosophy
          • Flutter
            • 🗺️Project Structure: CodeMap
            • 🧮Grid
            • ⚙️Setting
          • Inter-Process Communication
          • User
            • User Data
            • Events & Notifications
          • Folder
            • Events & Notifications
          • Document
          • Database View
            • Events & Notifications
            • Grid
            • Calendar
            • Kanban Board
        • Backend
          • Initialize
          • Events
          • Delta(WIP)
          • Profiling
          • Database
        • Domain Driven Design
        • Proposals
      • 🏗️Conventions
        • 🔤Naming Conventions
        • ⌨️Code Conventions
          • 🐦Flutter
        • 🐙Git Conventions
      • 💛Submitting Code
        • 🏦Setting Up Your Repositories
        • ⤴️Submitting your first Pull Request
      • 🤟Coding Standards and Practices
        • 👽Rust Backend
    • 🚀AppFlowy
      • 👾How to contribute to AppFlowy
      • 🏗️Building from Source
        • 🌳Flutter Setup
          • 🐧Building on Linux
          • 🍎Building on macOS
          • 🪟Building on Windows
        • 🌐Web Setup
        • 📡Tauri Setup
      • ☁️Debugging with AppFlowy Cloud
      • 🔁Debugging in VS Code
      • ☎️Translate AppFlowy
      • ❓Troubleshooting
      • 👮‍♀️Licenses
    • 🏍️AppFlowy Editor
      • ⌨️How to Implement Markdown Syntax To Style Text In AppFlowy Editor
      • 🧩How to Create a Plugin for AppFlowy Editor
      • 👮‍♀️Licenses
    • ☁️AppFlowy Cloud
      • 🌈Architecture
      • ☀️Deployment
  • Guides
    • Sync Desktop and Mobile
    • Self-Hosting AppFlowy
      • ☁️Self-hosting AppFlowy with AppFlowy Cloud
      • 🆓Self-hosting AppFlowy for free Using Supabase
    • Import From Notion
  • Blog Highlights
    • 🔮Demystifying AppFlowy Editor's Codebase
  • Handbook
    • Core values
Powered by GitBook
On this page
  • Step 1: Get the source code
  • Step 2: Install your build environment
  • Step 3: Edit and run the application
  • Building in release mode

Was this helpful?

Edit on GitHub
  1. Documentation
  2. AppFlowy
  3. Building from Source
  4. Flutter Setup

Building on Windows

PreviousBuilding on macOSNextWeb Setup

Last updated 2 months ago

Was this helpful?

Notes:

  • 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 first. If your issue is not included in the page, please create an or ask on .\

If you prefer a video tutorial click here:

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

    • 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++"

  • Make sure to use the Flutter 3.27.4 version

flutter --version
Flutter 3.27.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision d8a9f9a52e (4 weeks ago) • 2025-01-31 16:07:18 -0500
Engine • revision 82bd5b7209
Tools • Dart 3.6.2 • DevTools 2.40.3
  • 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
  • Install LLVM

  • Install rust

    • Call rustup.exe from powershell or cmd

.\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

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

rustup default 1.80.1
  • 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

    • 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)

  • Install perl

    • 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 21.1.2
  • 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.

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/appflowy/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

Install Visual Studio 2022 build tools. Download from

Install vcpkg according to . Make sure to add vcpkg installation folder to your .

Install flutter according to .

Based on your platform, install the LLVM using the . Additionally, make sure to add it to the system path.

Download rustup.exe from

Look for rustc 1.80.1 - You can find the supported version .

Download openssl_1.1.1n_win32_complete.zip from

Note: In cse the OpenSSL link resolves to a dead download, you can install OpenSSL from this . (From )

Download Perl for Windows (called Strawberry perl) from (choose x64 installer)

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

🚀
🏗️
🌳
🪟
https://visualstudio.microsoft.com/downloads/
this page
PATH environment variable
this page
LLVM-16.0.0-win64(32)
https://win.rustup.rs/x86_64
here
https://sockettools.com/kb/openssl-installation-packages-windows/
alternative source
https://slproweb.com/
https://strawberryperl.com/
Troubleshooting
issue
Discord
Troubleshooting
issue
Discord
video tutorial for building on windows
install_llvm
img.png