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] Create a new yellow theme for AppFlowy

    [FR] Create a new yellow theme for AppFlowy

    Description

    Solves #1475

    Tasks

    • [x] Create a mechanism to select from multiple theme options
    • [x] Create a new all-colored theme that utilizes all the colors in AppFlowy's logo.

    Impact

    Adding more themes will become much easier.

    Flow

    The previous AppFlowys app only allowed two themes. This theme control was taken care of by the following approach:

    User opens the settings page where they can toggle between the light theme and dark theme.
    

    After the PR is merged, changing the theme will done as follows

    User opens the settings page where they see a list of different themes, from which they select any one.
    

    Naming

    This PR adds a new ThemeType to the app. It adds the requested yellow theme. I have named the theme "Anne" because when I showed her a bunch of themes, this was the theme she liked the most. Also, she has been very supportive and welcoming during my journey of making my first contribution to AppFlowy. This is my way of saying Thanks.

    improvements editor 
    opened by MayurSMahajan 18
  • [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

    documentation notes 
    opened by LaBaude32 18
  • [Bug] Blank page

    [Bug] Blank page

    Describe the bug So, I wrote notes in a page withs some highlights yesterday. Today when I opened the app, the page opened and showed the title but no content of that page was visible. There was only a blank white page there. I tried restarting the app & PC both multiple times but it is still the same! I left it open for some time too but nothing happened!

    To Reproduce Steps to reproduce the behavior:

    1. Open the app
    2. Click on the page/ or if u closed the app with that page last time, It will open from that page
    3. See error

    Expected behavior I expected the app to open with the page on which I closed the app last time with all the things which I wrote there visible to me clearly as it was written there

    Screenshots image

    Desktop

    • Windows 11
    • Edge 98
    • 0.0.2
    bug 
    opened by rishabhgusain6 17
  • [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 15
  • 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
  • [FR] Support command + / -

    [FR] Support command + / -

    Description

    The large sized font option is excellent. I would like to suggest a function like "Ctrl" + "+" then the UI would zoom in including all text, just like obsidian. https://github.com/AppFlowy-IO/AppFlowy/discussions/665

    Impact

    Users who want to adjust the font size to meet their needs

    Additional Context

    No response

    new feature editor 
    opened by annieappflowy 2
  • [FR] Updating test grid data to cover fully the switching from

    [FR] Updating test grid data to cover fully the switching from "text" to "checkbox" type

    Description

    the current mock test data in make_test_grid() function is not enough to cover below cases, when user switching from text type to checkbox type

    image

    we need to fix another test cases as well when we expand mock test data.

    Impact

    #1632 another test cases will be failed testing coverage

    Additional Context

    please assign to me cc @appflowy @annieappflowy

    tests infra 
    opened by 0xkelvin 2
Releases(0.0.9)
A fast, powerful, flexible and easy to use open source data analysis and manipulation tool written in Rust

fisher-rs fisher-rs is a Rust library that brings powerful data manipulation and analysis capabilities to Rust developers, inspired by the popular pan

null 5 Sep 6, 2023
📊 Cube.js — Open-Source Analytics API for Building Data Apps

?? Cube.js — Open-Source Analytics API for Building Data Apps

Cube.js 14.4k Jan 8, 2023
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 289 Jan 6, 2023
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 27, 2022
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 184 Dec 22, 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 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
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 5k Jan 9, 2023
🦖 Evolve your fixed length data files into Apache Arrow tables, fully parallelized!

?? Evolve your fixed length data files into Apache Arrow tables, fully parallelized! ?? Overview ... ?? Installation The easiest way to install evolut

Firelink Data 3 Dec 22, 2023
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
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 939 Jan 5, 2023
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 40 Dec 20, 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.9k Jan 6, 2023
Read specialized NGS formats as data frames in R, Python, and more.

oxbow Read specialized bioinformatic file formats as data frames in R, Python, and more. File formats create a lot of friction for computational biolo

null 12 Jun 7, 2023
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
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 Dec 28, 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 12.1k Jan 2, 2023
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.8k Jan 8, 2023