Go to file
Alex Wallen 8dfbfe3c42
feat: Dynamically Load Themes in AppFlowy (#2670)
* feat: dynamic theme plugin (init)

* feat: provide fallback color if plugin becomes out of date (transparent)

* feat: use applicationDocumentsDirectory to store plugins

* chore: remove json files

* fix: add toJson to resolve analyzer errors

* fix: analyzer (unused imports)

* feat: add code generation scripts for freezed files (call recursively in packages)

* fix: revert changes to dry generation

* feat: call directly into script

* refactor: scripts try to be stateless :)

* fix: path to code generation in toml

* fix: generate script permissions

* fix: path not correct in generate.sh

* feat: modify execution permissions before executing scripts

* chore: switch order of build_runner and easy_localizations

* fix: fs is not valid duckscript cmd

* chore: clean build_runner before executing

* chore: upgrade freezed and build_runner attempt to resolve InvalidType error

* fix: use exec cmd.exe to chmod

* feat: add task to generate all files

* chore: remove redundant task (Code Gen)

* chore: remove json_annoation to dev_dependencies

* fix: dropped & between commands

* chore: rename file and class to FlowyDynamicPlugin

* fix: dependency hell

* fix: json annotation in colorscheme

* fix: analyzer warnings

* fix: duckscript runner for code generator

* fix: try without setting file permissions

* chore: move file picker to infra

* chore: restructure project directory

* feat: add BLoC components for consumers

* chore: update dependencies in pubspec.yaml file

* fix: file picker imports

* feat: add new translations for features

* feat: add new widgets to render upload

* fix: import

* feat: add text overflow

* feat: use animated switcher

* chore: export FileType

* fix: directory was not created, only files were copied

* chore: separate some logic

* feat: add saveFile to FilePickerService

* fix: analyzer error with unused imports

* feat: add translations for uploading

* feat: add builtins property to apptheme

* feat: add theme preview widget

* fix: upload widgets need to fill whole space and account for overflow

* refactor: do not watch file system for changes

* feat: add deletion confirmation dialog

* feat: add form factor resolution for dyanmic layout

* feat: trigger rebuild only when plugins are loaded

* feat: make all methods static

* chore: remove TODO comment, requires further design

* chore: move models to subfolder

* fix: references to plugin service instance

* fix: rebase errors

* fix: more rebasing errors

* feat: remove multiple themes from one plugin

* refactor: use pattern to resolve widget in settings_appearance_view

* refactor: remove commented code

* feat: add translations

* fix: import error

* refactor: separate concerns a bit more

* fix: bug in toJson serialization code

* feat: add package to use represent memory files

* fix: analyzer warnings

* chore: add translation

* chore: remove unused exceptions

* chore: use join

* chore: add documentation

* feat: add tests on theme

* fix: fix scripts for macOS

* feat: use appFlowyDocumentDirectory

* fix: remove unused import

* fix: imports

* feat: allow plugin service to be passed

* fix: theme tests

* feat: separate themes by built-in and plugin

* fix: rebase change name of appFlowyDocumentDirectory

* chore: add test to check that initial state falls back to initial theme

* chore: theme upload preview widget

* chore: rename to brightness setting

* refactor: appearance for settings appearance view

* feat: change show dialog api and use it

* fix: handle plugin compilation exception when incorrect format supplied

* fix: style of theme upload

* fix: always change state so that ui updates

* chore: style of loading widget

* fix: analyzer errors

* feat: add learn more button to documentation

---------

Co-authored-by: Yijing Huang <hyj891204@gmail.com>
Co-authored-by: nathan <nathan@appflowy.io>
2023-07-03 22:07:11 +08:00
.githooks chore: add install gitlint script & ignore body length 2022-09-22 10:50:04 +08:00
.github fix: windows integration test (#2917) 2023-07-02 23:37:30 +08:00
.run Feat/view map database (#1885) 2023-02-26 16:27:17 +08:00
doc Update CONTRIBUTING.md 2022-08-23 16:02:40 +08:00
frontend feat: Dynamically Load Themes in AppFlowy (#2670) 2023-07-03 22:07:11 +08:00
shared-lib chore: upgrade rust version to 1.70 (#2749) 2023-06-09 22:23:07 +08:00
.dockerignore Fix the app's Dockerfile and comment it (#2162) 2023-04-11 10:26:04 +08:00
.gitignore fix: tauri folder display (#2176) 2023-04-04 14:08:50 +08:00
CHANGELOG.md chore: bump version 0.2.5 (#2924) 2023-07-02 15:15:57 +08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-10-28 11:37:19 +08:00
commitlint.config.js fix: put back commintlint config because the server will need it 2022-07-25 12:44:54 -04:00
inlang.config.js chore: Merge main 521 (#2574) 2023-05-21 15:08:50 +08:00
LICENSE Create License 2021-11-09 10:26:37 +08:00
README.md chore: merge remote-tracking branch 'main' into develop (#2530) 2023-05-15 11:18:08 +08:00
ROADMAP.md chore: update ROADMAP.md 2022-07-27 17:29:47 +08:00

AppFlowy.IO
The Open Source Alternative To Notion

You are in charge of your data and customizations.

License: AGPL

WebsiteDiscordTwitter

AppFlowy Docs & Notes & Wikis

AppFlowy Databases for Tasks and Projects

AppFlowy Kanban Board for To-Dos

AppFlowy Calendars for Plan and Manage Content

AppFlowy OpenAI GPT Writers

User Installation

Built With

Stay Up-to-Date

AppFlowy Github - how to star the repo

Getting Started with development

Please view the documentation for OS specific development instructions

Roadmap

If you'd like to propose a feature, submit a feature request here
If you'd like to report a bug, submit a bug report here

Releases

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

Contributing

Contributions make the open-source community a fantastic place to learn, inspire, and create. Any contributions you make are greatly appreciated. Please look at Contributing to AppFlowy for details.

If your Pull Request is accepted as it fixes a bug, adds functionality, or makes AppFlowy's codebase significantly easier to use or understand, Congratulations! If your administrative and managerial work behind the scenes sustains the community, Congratulations! You are now an official contributor to AppFlowy. Get in touch with us (link) to receive the very special Contributor T-shirt! Proudly wear your T-shirt and show it to us by tagging @appflowy on Twitter.

Join the community to build AppFlowy together

Why Are We Building This?

Notion has been our favourite 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 and our past work experience with collaborative productivity tools have led to our firm belief that there is a glass ceiling on what's possible for these tools in the future. This emanates from the fact that these tools will probably struggle to scale horizontally at some point and be forced to prioritize a proportion of customers whose needs differ from the rest. While decision-makers want a workplace OS, it is impossible 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, data security, and cross-platform native experience.
  • To enterprises and hackers, AppFlowy is dedicated to offering building blocks and 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

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: