AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations

Overview

AppFlowy.IO
⭐️ The Open Source Notion Alternative ⭐️

License: AGPL

You are in charge of your data and customizations.

WebsiteDiscordTwitter

The Open Source Notion Alternative.

Built With

Stay Up-to-Date

AppFlowy Github

Getting Started

How to build on MacOS, please follow these simple steps.

Step 1:

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

Step 2:

cd appflowy
make install_rust
make install_cargo_make
cargo make install_targets

🚀 Skip install_rust or install_cargo_make if you already installed it. FYI, AppFlowy uses https://github.com/sagiegurari/cargo-make to construct the build scripts

Step 3:

Follow the instructions here to install Flutter. As AppFlowy uses the dev channel, you need to switch the channel. Just type:

flutter channel dev

Step 4:

  • Open the app_flowy folder located at xx/appflowy/app_flowy with Visual Studio or other IDEs at your disposal.
  • Go to the Run and Debug tab and then click the run button. Run the project

Roadmap

AppFlowy Roadmap

If you'd like to propose a feature, submit an issue here.

Releases

Please see the changelog for more details about a given release.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Please look at CONTRIBUTING.md for details.

Why Are We Building This?

Notion has been our favorite project and knowledge management tool in recent years because of its aesthetic appeal and functionality. Our team uses it daily, and we are on its paid plan. However, as we all know Notion has its limitations. These include weak data security and poor compatibility with mobile devices. Likewise, alternative collaborative workplace management tools also have their constraints.

The limitations we encountered using these tools rooted in our past work experience with collaborative productivity tools lead to our firm belief that there is, and will be a glass ceiling on what's possible in the future for tools like Notion. This emanates from these tools probable struggles to scale horizontally at some point. It implies that they will likely be forced to prioritize for a proportion of customers whose needs can be quite different from the rest. While decision-makers want a workplace OS, the truth is that it is not very possible to come up with a one-size fits all solution in such a fragmented market.

When a customer's evolving core needs are not satisfied, they either switch to another or build one from the ground up, in-house. Consequently, they either go under another ceiling or buy an expensive ticket to learn a hard lesson. This is a requirement for many resources and expertise, building a reliable and easy-to-use collaborative tool, not to mention the speed and native experience. The same may apply to individual users as well.

All these restrictions necessitate our mission - to make it possible for anyone to create apps that suit their needs well.

  • To individuals, we would like to offer Notion's functionality along with data security and cross-platform native experience.
  • To enterprises and hackers, AppFlowy is dedicated to offering building blocks, that is, collaboration infra services to enable you to make apps on your own. Moreover, you have 100% control of your data. You can design and modify AppFlowy your way, with a single codebase written in Flutter and Rust supporting multiple platforms armed with long-term maintainability.

We decided to achieve this mission by upholding the three most fundamental values:

  • Data privacy first
  • Reliable native experience
  • Community-driven extensibility

To be honest, we do not claim to outperform Notion in terms of functionality and design, at least for now. Besides, our priority doesn't lie in more functionality at the moment. Instead, we would like to cultivate a community to democratize the knowledge and wheels of making complex workplace management tools, while enabling people and businesses to create beautiful things on their own by equipping them with a versatile toolbox of building blocks.

License

Distributed under the AGPLv3 License. See LICENSE.md for more information.

Acknowledgements

Special thanks to these amazing projects which help power AppFlowy.IO:

Comments
  • [FR] Darkmode

    [FR] Darkmode

    1~3 main use cases of the proposed feature Dark mode UI.

    what types of users can benefit from using your proposed feature Pretty much everyone.

    Additional context Some form of darkmode or "Themes" backed in.

    new feature good first issue for devs 
    opened by rhinotastic 23
  • [FR] Consider Flatpak release via Flathub / Flathub-Beta

    [FR] Consider Flatpak release via Flathub / Flathub-Beta

    1~3 main use cases of the proposed feature Use for most Linux distros. While AppImage and Snap are valid ways of universal package distribution on Linux, Flatpak seems to be the one that is more embraced by distributions that aren't mainline Ubuntu (although Ubuntu users can very easily add Flatpak as source, and it is more embraced by Ubuntu-based distro) and Arch-based (AUR).

    This is especially true with OS with immutable root filesystem, such as Endless OS, Fedora Silverblue/Kinoite, and soon SteamOS 3.0.

    Using Flatpak would be a good way of distributing them for most platforms, especially given that they are usually integrated with the distribution's GUI Software Centers.

    what types of users can benefit from using your proposed feature Linux users in most distributions (Ubuntu users can also easily add Flatpak source).

    Additional context Consider using Flathub-Beta while the project is still in early development.

    new feature 
    opened by bayazidbh 14
  • Push docker image to Docker Hub

    Push docker image to Docker Hub

    Fixes #344

    NOTE: For it to work, we need an admin to configure an account in Docker Hub and set the credentials in environment variables in GithUb as explained in https://docs.docker.com/ci-cd/github-actions/#set-up-a-docker-project

    opened by PabloCastellano 12
  • [Bug] No app icon on Linux

    [Bug] No app icon on Linux

    Describe the bug The application does not correctly show an icon in the app bar.

    To Reproduce Steps to reproduce the behavior:

    1. Launch the application
    2. The application bar shows the default application icon

    Expected behavior The AppFlowy icon should appear in the app bar

    Screenshots image

    Desktop (please complete the following information):

    • OS: Linux
    • Browser N/A
    • Version 0.0.2

    Additional context I believe the correct way to fix this is to create a .desktop file.

    new feature help wanted 
    opened by MikeWallaceDev 12
  • Readme.md | Replaced social media hyperlinked text with icons.

    Readme.md | Replaced social media hyperlinked text with icons.

    0-I replaced the simple Hyperlinked Website, Discord, Twitter text with with their icons. 1-This makes our readme.md file more interactive. 2-Now the user can go to appflowy social media handles with a single click on the particular social media icon, where the user want go!! 4-Any kind of improvement idea is appreciated Rich difference: image

    Thank you!!

    opened by Abubakrce19 11
  • [FR] Support Workspace Settings - name and icon

    [FR] Support Workspace Settings - name and icon

    1~3 main use cases of the proposed feature As a user, I want to rename my workspace and set another icon for it.

    what types of users can benefit from using your proposed feature All the users

    Additional context Currently, the purple icon and the name are hardcoded. We want to enable users to change them through "Settings" image There should be a new section in "Settings" called "Workspace":

    1. Keep the default as it is.
    2. The user can rename the workspace and set an emoji icon.
    3. The changes should be reflected in the left-hand sidebar after pressing the "Update" button on the "Workspace" setting page.
    new feature good first issue for devs 
    opened by annieappflowy 11
  • [Refactor] Migrate the markdown feature from Dart to Rust

    [Refactor] Migrate the markdown feature from Dart to Rust

    We support exporting a page in Markdown format in Dart. Currently, all the data processing-related functions but Markdown are developed in Rust. We would like to refactor the Markdown function from Dart to Rust. The main reason for this is that using Rust to process large files increases performance.

    Need to know Rust

    good first issue for devs 
    opened by annieappflowy 11
  • [FR] Emoji picker

    [FR] Emoji picker

    1~3 main use cases of the proposed feature While mobile OSs and Windows both have system-wide emoji pickers, most Linux systems don't. Gnome for example has one, but only for native GTK apps. Having a dedicated emoji picker (like for example the one in Discord) would make adding emojis in documents much easier.

    what types of users can benefit from using your proposed feature Any user who can't/does not want to use external emoji pickers

    Additional context Example of Discord's emoji picker image

    new feature good first issue for experienced devs help wanted 
    opened by BLKFSH 11
  • [Help]: Debug Linux Build

    [Help]: Debug Linux Build

    We have a half-baked Linux Build with some issues: some icons are missing. image

    So I want to debug on Ubuntu, but I'm having trouble debugging on Linux. Every time I'm on debug mode, the build process gets stuck, and my system becomes frozen.

    At this point, I've come to a decision to focus on higher ROI work and put this one on hold, unfortunately. As a team of two, we have to keep going, and there are many important tasks on our plate. I'd like to make a call out here for help with this issue. Anyone interested in this can take it from where it's left out.

    Debug environment setup: Step 1: Follow the instructions on https://github.com/AppFlowy-IO/appflowy/blob/main/doc/BUILD_ON_LINUX.md

    Step 2: open the frontend/scripts/build_sdk.sh, comment out the command based on your system.

    image

    # for macos
    #cargo make --profile development-mac flowy-sdk-dev
    
    # for window
    #cargo make --profile development-windows flowy-sdk-dev
    
    
    # for linux amd64
    #cargo make --profile development-linux-x86 flowy-sdk-dev
    
    # for linux aarch64
    #cargo make --profile development-linux-aarch64 flowy-sdk-dev
    

    Step 3: open frontend/app_flowy with vs code. image

    help wanted 
    opened by appflowy 11
  • Refactor default themes, and start migrating from `Provider` to `Bloc (Cubit)`

    Refactor default themes, and start migrating from `Provider` to `Bloc (Cubit)`

    Changes

    • Instead of using a custom AppTheme to theming, we could use Theme.of(context)... instead, leads to a more consistent app where the app, SDK and package widgets could benefit from
    • Using BLOC (Cubit) instead of Provider to control theming
    • Persist theme setting with Hydrated BLOC
    • Update the colors and terms according to https://github.com/AppFlowy-IO/appflowy/issues/31#issuecomment-995269689

    Thought

    We need to work more on the default theme currently because the colors are not working pretty well (using the same tints for both theme modes, etc). ~IMO I don't think we should put a lot of time into this aspect but rather spending time on implementing features, it seems like Material Design is the way to go at the current point.~ Seems like it's more practical if we could have an actual design (on Figma or something) so we could test out the colors and establish the default theme for AppFlowy.

    ~But maybe it will not take a lot of time since~ now we theming with Theme.of(context)..., changes will be applied throughout the app pretty easily :sweat_smile:.

    opened by hieugao 10
  • [Bug] Cannot run on Macbook M1 chip

    [Bug] Cannot run on Macbook M1 chip

    Describe the bug Cannot run on Macbook M1 chip

    To Reproduce brew install appflowy Click application/appflowy

    Expected behavior Main windows shows up

    Screenshots Nothing shows, no process named appflowy in the activity monitor.

    Desktop (please complete the following information):

    • OS: macOS Monterey 12.1
    • Browser, both chrome and safari are installed
    • Version, chrome 97.0; Safari 15.2

    Additional context

    • Environment [e.g. flutter doctor -v or rustup show]
    Running "flutter pub get" in flutter_tools...                      17.6s
    [✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-arm, locale
        en-CN)
        • Flutter version 2.8.1 at /opt/homebrew/Caskroom/flutter/2.8.1/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 77d935af4d (4 weeks ago), 2021-12-16 08:37:33 -0800
        • Engine revision 890a5fca2e
        • Dart version 2.15.1
    
    [✗] Android toolchain - develop for Android devices
        ✗ Unable to locate Android SDK.
          Install Android Studio from:
          https://developer.android.com/studio/index.html
          On first launch it will assist you in installing the Android SDK
          components.
          (or visit https://flutter.dev/docs/get-started/install/macos#android-setup
          for detailed instructions).
          If the Android SDK has been installed to a custom location, please use
          `flutter config --android-sdk` to update to that location.
    
    
    [✗] Xcode - develop for iOS and macOS
        ✗ Xcode installation is incomplete; a full installation is necessary for iOS
          development.
          Download at: https://developer.apple.com/xcode/download/
          Or install Xcode via the App Store.
          Once installed, run:
            sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
            sudo xcodebuild -runFirstLaunch
        ✗ CocoaPods not installed.
            CocoaPods is used to retrieve the iOS and macOS platform side's plugin
            code that responds to your plugin usage on the Dart side.
            Without CocoaPods, plugins will not work on iOS or macOS.
            For more info, see https://flutter.dev/platform-plugins
          To install see
          https://guides.cocoapods.org/using/getting-started.html#installation for
          instructions.
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [!] Android Studio (not installed)
        • Android Studio not found; download from
          https://developer.android.com/studio/index.html
          (or visit https://flutter.dev/docs/get-started/install/macos#android-setup
          for detailed instructions).
    
    [✓] VS Code (version 1.63.2)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension can be installed from:
          🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
    
    [!] Proxy Configuration
        • HTTP_PROXY is set
        ! NO_PROXY is not set
    
    [✓] Connected device (1 available)
        • Chrome (web) • chrome • web-javascript • Google Chrome 97.0.4692.71
    
    documentation 
    opened by jzmini 10
  • [FR] I need the funtion for code block

    [FR] I need the funtion for code block

    Description

    I need the function for code block like this. I want to record the program.

    program
    

    Impact

    programer.

    someoen who make tutorial about software.

    Additional Context

    No response

    editor 
    opened by fengmao31 0
  • [Bug] Grid note broken after upgrade from 0.0.7 to 0.0.8

    [Bug] Grid note broken after upgrade from 0.0.7 to 0.0.8

    Bug Description

    image

    msg oterror incompatiblelength msg expected 83, but received 0.

    Error message is also unselectable so I couldn't copy and paste it here.

    How to Reproduce

    Upgrade from 0.0.7 to 0.0.8

    Expected Behavior

    Grid note works as before

    Operating System

    Arch Linux x64

    AppFlowy Version(s)

    v0.0.8

    Screenshots

    image

    Additional Context

    No response

    opened by Dialga 3
  • feat: add hover effect when trash icon is selected or hovered.

    feat: add hover effect when trash icon is selected or hovered.

    Hello AppFlowy. I am creating this PR to solve issue on this link.

    1. Remove padding(horizontal: Insets.l), in line 103 so the hover effect width can match the container.
    2. Add ValueListneableBuilder so MenuTrash widget can update their state when clicked or unclicked.

    The video of the result is here

    This is the updated PR from previous attempt on this link.

    opened by rasyidmi 2
  • [Bug] AppFlowy is crashed after creating the second new page

    [Bug] AppFlowy is crashed after creating the second new page

    Bug Description

    AppFlowy is crashed after creating the second new page

    How to Reproduce

    click on below button to create a new page : image

    it is ok for the first page, but the crashing will happen if try to create another new page

    Expected Behavior

    can create many many pages

    Operating System

    MacOS M1

    AppFlowy Version(s)

    latest

    Screenshots

    image

    Additional Context

    No response

    opened by 0xkelvin 6
  • [Bug] Deb packaging error

    [Bug] Deb packaging error

    Bug Description

    Hi ! I tried to install the Debian package (thx for it) on my Debian 11, but it's doesn't work because Debian’s dpkg package doesn’t support zstd compression. So i get that error :

    dpkg-deb: error: archive '/home/baudouin/Téléchargements/AppFlowy_0.0.7_linux-amd64.deb' uses unknown compression for member 'control.tar.zst', giving up
    dpkg: error processing archive /home/baudouin/Téléchargements/AppFlowy_0.0.7_linux-amd64.deb (--unpack):
     dpkg-deb --control subprocess returned error exit status 2
    Errors were encountered while processing:
     /home/baudouin/Téléchargements/AppFlowy_0.0.7_linux-amd64.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    

    How to Reproduce

    sudo apt install ./AppFlowy_0.0.7_linux-amd64.deb

    Expected Behavior

    Maybe using an other compression method ?

    Operating System

    Debian 11

    AppFlowy Version(s)

    0.0.7

    opened by LaBaude32 5
Releases(0.0.8)
Bytewax is an open source Python framework for building highly scalable dataflows.

Bytewax Bytewax is an open source Python framework for building highly scalable dataflows. Bytewax uses PyO3 to provide Python bindings to the Timely

Bytewax 257 Nov 17, 2022
Fill Apache Arrow record batches from an ODBC data source in Rust.

arrow-odbc Fill Apache Arrow arrays from ODBC data sources. This crate is build on top of the arrow and odbc-api crate and enables you to read the dat

Markus Klein 21 Dec 2, 2022
A unix-friendly map-reduce parallelization alternative

slb: sharded load balancer Like parallel --pipe --roundrobin but load balancing is performed based on input line hashing. When performing keyed aggreg

Vladimir Feinberg 29 Dec 8, 2021
New generation decentralized data warehouse and streaming data pipeline

World's first decentralized real-time data warehouse, on your laptop Docs | Demo | Tutorials | Examples | FAQ | Chat Get Started Watch this introducto

kamu 181 Nov 26, 2022
This library provides a data view for reading and writing data in a byte array.

Docs This library provides a data view for reading and writing data in a byte array. This library requires feature(generic_const_exprs) to be enabled.

null 2 Nov 2, 2022
A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, built to make the Data Cloud easy

A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, built to make the Data Cloud easy

Datafuse Labs 4.8k Nov 26, 2022
Perhaps the fastest and most memory efficient way to pull data from PostgreSQL into pandas and numpy. 🚀

flaco Perhaps the fastest and most memory efficient way to pull data from PostgreSQL into pandas and numpy. ?? Have a gander at the initial benchmarks

Miles Granger 14 Oct 31, 2022
ever wanted to leave all slack channels? now you can!

slack-leaver ever wanted to leave all slack channels? now you can! usage Head to the Releases page, pick a release that matches your platform. from so

Tristan Leo 1 Jan 7, 2022
ConnectorX - Fastest library to load data from DB to DataFrames in Rust and Python

ConnectorX enables you to load data from databases into Python in the fastest and most memory efficient way.

SFU Database Group 888 Nov 25, 2022
Provides a way to use enums to describe and execute ordered data pipelines. 🦀🐾

enum_pipline Provides a way to use enums to describe and execute ordered data pipelines. ?? ?? I needed a succinct way to describe 2d pixel map operat

Ben Greenier 0 Oct 29, 2021
An example repository on how to start building graph applications on streaming data. Just clone and start building 💻 💪

An example repository on how to start building graph applications on streaming data. Just clone and start building ?? ??

Memgraph 39 Nov 10, 2022
Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing

Apache Arrow Powering In-Memory Analytics Apache Arrow is a development platform for in-memory analytics. It contains a set of technologies that enabl

The Apache Software Foundation 10.7k Dec 2, 2022
High-performance runtime for data analytics applications

Weld Documentation Weld is a language and runtime for improving the performance of data-intensive applications. It optimizes across libraries and func

Weld 2.9k Nov 23, 2022
A high-performance, high-reliability observability data pipeline.

Quickstart • Docs • Guides • Integrations • Chat • Download What is Vector? Vector is a high-performance, end-to-end (agent & aggregator) observabilit

Timber 11.9k Dec 1, 2022
Rayon: A data parallelism library for Rust

Rayon Rayon is a data-parallelism library for Rust. It is extremely lightweight and makes it easy to convert a sequential computation into a parallel

null 7.6k Nov 23, 2022
Quickwit is a big data search engine.

Quickwit This repository will host Quickwit, the big data search engine developed by Quickwit Inc. We will progressively polish and opensource our cod

Quickwit Inc. 2.7k Nov 23, 2022
DataFrame / Series data processing in Rust

black-jack While PRs are welcome, the approach taken only allows for concrete types (String, f64, i64, ...) I'm not sure this is the way to go. I want

Miles Granger 30 Oct 9, 2022
A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, written in Rust

Datafuse Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture Datafuse is a Real-Time Data Processing & Analytics DBMS wit

Datafuse Labs 4.8k Nov 30, 2022
A highly efficient daemon for streaming data from Kafka into Delta Lake

A highly efficient daemon for streaming data from Kafka into Delta Lake

Delta Lake 164 Nov 19, 2022