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.
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.
Not feeling quite up to working on the project yet? Tell us your suggestions!
- Submit feature requests. We'd love to hear your ideas!
- Report bugs. This really helps a lot!
- Provide your suggestions on the forum
- Review Pull Requests
- Provide feedback to proposed features
You want to help out with 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 as part of our community. Here are a few ideas:
- Answer questions having ""General help wanted" or "Technical help wanted" labels on the forum
- 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.
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. 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.
- Read the technical wiki. This is where you will find all of our design documentation. (TBD)
- 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.
- Provide feedback proposed features
- Review Pull Requests
- If you are ready to code (maybe a lot), please submit a patch!
- (WIP: guidelines)
- (WIP: Code Style)
This section has a step-by-step guide to starting as an AppFlowy codebase contributor. Don’t worry if you make mistakes in your first contribution; no one gets it right the first time.
- First, make an account on the AppFlowy community server, and pay attention to the community norms.
- Set up your AppFlowy development environment, getting help on the forum or in #general on the community server.
- Familiarize yourself with using the development environment
- Check out How we built AppFlowy with Flutter and Rust
- Read the Submitting Code guide if you are new to GitHub or development in general
- Now you are ready to pick your first issue
- You can look through unclaimed issues here.
- Issues tagged with the "good first issue for devs” label is used to indicate the issues that are especially approachable for new contributors.
- We also use the "good first issue for experienced devs" label to tag issues that are recommended to developers who have relevant expertise or extensive general software development experience.
- In addition, there are issues tagged with the "help wanted" label, which are ready for contributions.
- If there is not already an issue covering the work you are interested in doing, then file a new issue to describe the problem/feature you are addressing.
- Post a comment to the issue thread that you would like to claim. Someone with Contributor access<ANOTHER ROLE?> will assign you to the issue and label the issue as “Todo”, once triage is completed
- If you need a mentor, please @annieappflowy. We will assign you a mentor who's familiar with your task. We strongly recommend newcomers have a mentor in place.
- We also recommend new contributors only claim one issue until their first pull request is merged. This is to encourage folks to get familiar with the codebase and finish ongoing work before starting something new.
- We encourage early pull requests for work in progress.
- It's normal and totally ok if your first PR takes you a while.
- Please update your progress on the issue regularly. If you no longer work on this issue, please comment on the issue so that other people can take over it.
- Ensure that the title is meaningful, and edit if not
- If report is unclear, add a comment asking for required details and add the
waiting for user response
label - If the issue describes something that was implemented/fixed in a later build, add a comment saying so and close the issue
- If you recognize that this issue is a duplicate, comment a link to the original issue and close this one
- Add appropriate labels to the issue and add the issue to AppFlowy's Project
Sponsoring is another great way to contribute to the community.
- Buy us a coffee on ko-fi
- For more extensive sponsorship, please contact Annie at [email protected]
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 that sustains the community as a whole, 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.
Please report a code of conduct violation to [email protected]. Let's encourage the behavior we want to see in the world and constantly foster a welcoming environment!