From b413fade9178ae79e2a292579a7bab4594add95f Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 15 Dec 2021 20:56:21 -0500 Subject: [PATCH] Added AppFlowy logo at top of page Simplified and removed a lot of duplication Change the order of things to make the contributions go from easy to hardest There were many redundant sentences. Like explaining what to put in a Bug Report when we already have a template for that. People can see. :D --- doc/CONTRIBUTING.md | 113 ++++++++++++--------------- doc/imgs/appflowy_title_and_logo.png | Bin 0 -> 8353 bytes 2 files changed, 50 insertions(+), 63 deletions(-) create mode 100644 doc/imgs/appflowy_title_and_logo.png diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md index 977a522f8d..4b10da001e 100644 --- a/doc/CONTRIBUTING.md +++ b/doc/CONTRIBUTING.md @@ -1,95 +1,75 @@ -# Contributing to AppFlowy +

The Open Source Notion Alternative.

-Hello, and welcome! Whether you are trying to report a bug, proposing a feature request, thinking about getting involved in the project ,or submitting a patch, this document is for you! It intends to be both an entry point for newcomers to AppFlowy's community (with various backgrounds), and a guide/reference for contributors. + +# Contributing to AppFlowy + +Hello, and welcome! Whether you are trying to report a bug, proposing a feature request, thinking about getting involved in the project, or submitting a patch, this document is for you! It intends to be both an entry point for newcomers to AppFlowy's community (with various backgrounds), and a guide/reference for contributors. Consult the Table of Contents below, and jump to the desired section. ## Table of Contents - [Contributing](#contributing) - - [Non-coded Contributions](#non-coded-contributions) + - [Feedback](#feedback) + - [Non-coding Contributions](#non-coding-contributions) - [Coding Contributions](#coding-contributions) - - [Report a Bug](#report-a-bug) - - [Helping Others](#helping-others) - - [Submit a Patch](#submit-a-patch) - - [Tell Us Your Suggestions](#tell-us) - - [Sponsor](#sponsor) +- [Sponsor](#sponsor) - [Contributor T-shirt](#contributor-t-shirt) - [Code of Conduct](#code-of-conduct) - [Sign the CLA Agreement](#sign-the-cla-agreement) ## Contributing +There are many ways in which you can contribute to the project. You can be involved just a little, or a whole lot! Every lit bit helps and is very appreciated by everyone. -### Non-coded Contributions +### Feedback -There can help in multiple ways - even if you don't write code, you can still give back your love to our community. Here are a few ideas: +Not feeling quite up to working on the project yet? Tell us your suggestions! +- Submit [feature requests](https://github.com/AppFlowy-IO/appflowy/issues). We'd love to hear your ideas! +- Report [bugs](https://github.com/AppFlowy-IO/appflowy/issues). This really helps a lot! +- Provide your suggestions on the [forum](https://github.com/AppFlowy-IO/appflowy/discussions) +- Review [Pull Requests](https://github.com/AppFlowy-IO/appflowy/pulls) +- Provide feedback to [proposed features](https://github.com/AppFlowy-IO/appflowy/issues) -- Answer questions having ""General help wanted" labels on the [forum](https://github.com/AppFlowy-IO/appflowy/discussions) -- Improve the documentation (WIP) -- Submit feature requests on Github ([link](https://github.com/AppFlowy-IO/appflowy/issues)) - - Submit an issue for feature requests. Please include the information listed below in the issue: - - 1~3 main use cases of the proposed feature - - what types of users can benefit from using your proposed feature - - Submit a patch to fix the issue [see this section](#submit-a-patch) -- Report bugs on Github ([link](https://github.com/AppFlowy-IO/appflowy/issues)). Please include relevant information listed below in the ticket: - - A summary of the issue - - A list of steps to reproduce the issue - - The version of AppFlowy you encountered the issue with - - Your configs (OS, mobile device, network, etc) that are relevant to your issue -- Be an AppFlowy's ambassador or evangelist! Proprietary software companies often have dedicated marketing teams to get more users, but luckily we have something better: you! Share your experience with AppFlowy! This can be anything: - - Write a life-hacks-style blog post on how you or your company use AppFlowy to get things done - - Spread the word on the media to get more people to join the community. To name a few channels, Product Hunt, Hacker Noon, Quora, Reddit, and Stack Overflow are good choices. - - Give a lightning talk at your local hackerspace on why you love AppFlowy - - Write a review of the pros and cons of similar open source apps +[Back to TOC](#table-of-contents) + +### Non-coding Contributions + +You want to work on the project, but you're not a developer? You can help in multiple ways - even if you don't write code! You can still give back your love to our community. Here are a few ideas: + +- Answer questions having ""General help wanted" or "Technical help wanted" labels on the [forum](https://github.com/AppFlowy-IO/appflowy/discussions) +- Improve the documentation. +- Be an AppFlowy ambassador or evangelist! Proprietary software companies often have dedicated marketing teams to get more users, but luckily we have something better: you! Share your experience with AppFlowy! This can be anything: + - Write a life-hacks-style blog post on how you or your company use AppFlowy to get things done. + - Spread the word on all social media platforms to get more people to join the community. To name a few channels, Product Hunt, Hacker Noon, Quora, Reddit, and Stack Overflow are good choices. + - Give a lightning talk at your local hackerspace on why you love AppFlowy. + - Write a review of the pros and cons of similar open source apps. + +[Back to TOC](#table-of-contents) ### Coding Contributions -Developers who consider participating in AppFlowy's development, please go here to start: - -#### Report a Bug - -Please include relevant information listed below in the ticket ([link](https://github.com/AppFlowy-IO/appflowy/issues)): -- A summary of the issue -- A list of steps to reproduce the issue -- The version of AppFlowy you encountered the issue with -- Your configs (OS, mobile device, network, etc) that are relevant to your issue - -#### Helping Others - -Helping other members of the community by answering questions having "Technical help wanted" or "General help wanted" labels on the [forum](https://github.com/AppFlowy-IO/appflowy/discussions) - -#### Submit a Patch - -We love to receive Pull Requests. -- If you are a beginner or a newcomer, here are some tasks for you to get ramped up: - - Fix a typo in code - - Fix a typo in the documentation (WIP) - - Awesome issues for beginners or newcomers (WIP) - - Provide feedback on the proposed features ([link](https://github.com/AppFlowy-IO/appflowy/issues)) - - Review Pull Requests ([link](https://github.com/AppFlowy-IO/appflowy/pulls)) +So you want to submit code, documentation, or graphical expertise? Welcome to the club! We will try to give you all the help you need to get up and running. + - Join our [Discord](https://discord.com/invite/9Q2xaN37tV). Here you will be able to chat with all of our contributors and the heads of the project. + - Read the documentation. You should start at the main README.md where you will find information on how to setup your computer to develop with Flutter and Rust. + - Submit a Patch. We love to receive Pull Requests. If you are a beginner or a newcomer, here are some tasks for you to get ramped up: + - Fix a typo in the code. + - Fix a typo in the documentation. + - Awesome issues for [beginners or newcomers](https://github.com/AppFlowy-IO/appflowy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue+for+devs%22). + - Provide feedback [proposed features](https://github.com/AppFlowy-IO/appflowy/issues) + - Review [Pull Requests](https://github.com/AppFlowy-IO/appflowy/pulls) - If you are ready to code (maybe a lot), please submit a [patch](https://github.com/AppFlowy-IO/appflowy/pulls)! - (WIP: guidelines) - (WIP: Code Style) -#### Tell Us - -Not feeling quite up to contributing? Tell us your suggestions! -- Submit feature requests ([see this section](#non-coded-contributions)) -- Provide your suggestions on the [forum](https://github.com/AppFlowy-IO/appflowy/discussions) -- Review Pull Requests ([link](https://github.com/AppFlowy-IO/appflowy/pulls)) -- Provide feedback on the proposed features ([link](https://github.com/AppFlowy-IO/appflowy/issues)) - [Back to TOC](#table-of-contents) +## Sponsor -### Sponsor - -Sponsoring is another great way to contribute to the community. -- Buy us a coffee on [ko-fi](https://ko-fi.com/appflowy) +Sponsoring is another great way to contribute to the community. + - Buy us a coffee on [ko-fi](https://ko-fi.com/appflowy) [Back to TOC](#table-of-contents) - ## Contributor T-Shirt If your Pull Request was accepted as it fixes a bug, adds functionality, or makes AppFlowy's codebase significantly easier to use or understand, congratulations! You are now an official contributor to AppFlowy. Get in touch with us ([link](https://tally.so/r/mKP5z3)) to receive the very special Contributor T-shirt! @@ -98,6 +78,7 @@ Proudly wear your T-shirt and show it to us by tagging [@appflowy](https://twitt [Back to TOC](#table-of-contents) + ## Code of Conduct Please report a code of conduct violation to annie@appflowy.io. @@ -106,4 +87,10 @@ Let's encourage the behavior we want to see in the world and constantly foster a [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) +[Back to TOC](#table-of-contents) + +## Sign the CLA Agreement + +TBD + [Back to TOC](#table-of-contents) diff --git a/doc/imgs/appflowy_title_and_logo.png b/doc/imgs/appflowy_title_and_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..25ca8649024fffce9a475619bb0c8a58b0af0cb4 GIT binary patch literal 8353 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 bR<