# How you can help If you've made it to this page, you're probably already convinced that Bevy is a project you'd like to see thrive. But how can *you* help? No matter your experience level with Bevy or Rust or your level of commitment, there is a way for you to contribute! Take a look at the sections that follow to pick a route (or five) that appeal to you. ## Battle-testing Bevy Ultimately, Bevy is a tool that's designed to help people make cool games. Just by using Bevy you're helping us catch bugs, prioritize new features, polish off the rough edges, and promote the project. If you're using Bevy, we want to hear from you! Don't hesitate to ask for support on [Github Discussions], [Discord], or [Reddit]. Once you've made something that you're proud of, feel free to drop a link, video, or screenshot in `#showcase` on [Discord]! If you release a game on [itch.io] we'd be thrilled if you tagged it with `bevy`. :::info Think you've found a bug, missing documentation, or a feature that would help you make better games? [File an issue](https://github.com/bevyengine/bevy/issues/new/choose) on the main `bevy` repo! Take a look at the chapter on [Using Github Issues](#todo-using-github-issues) to learn more. ::: [GitHub Discussions]: https://github.com/bevyengine/bevy/discussions [Discord]: https://discord.gg/bevy [Reddit]: https://www.reddit.com/r/bevy [itch.io]: https://itch.io/games/tag-bevy ## Reviewing Others' Work **One of the most valuable things you can do is review other people's work.** Bevy relies on community code review to keep the code quality high and the maintenance burden low. Absolutely anyone is welcome to leave leave reviews, and all reviews are treated with equal weight. You don't need to be an Elder Rustacean to be useful here: anyone can catch missing tests, unclear docs, logic errors, and so on. If you're new to Rust or to Bevy, submitting reviews is great way to learn things things and acquaint yourself with the internals of the engine. If you do have specific skills (e.g. advanced familiarity with `unsafe` code, rendering knowledge, or web development experience) or personal experience with a problem, that's fantastic! We suggest trying to prioritize those areas, to ensure we can get appropriate expertise where we need it. Not even our Project Leads and Maintainers are exempt from reviews! By giving feedback on this work (and related supporting work), you can help us make sure our releases are both high-quality and timely. :::info Interested in reviewing but don't know where to start? Check out [Reviewing Pull Requests](#todo-reviewing-pull-requests)! ::: ## Joining a working group Bevy's active initiatives are organized into *temporary working groups*: public, open-membership teams where people work together to tackle a broad-but-scoped goal. Each working group coordinates through a dedicated forum-channel on [Discord], although they also create issues and may use project boards for tangible work that needs to be done. You should consider joining a working group if you're interested in contributing code but don't know where to start or what to work on. Choosing one and asking how to help can be a fantastic way to get up to speed and be immediately useful. There are no special requirements to participate in a working group, as well as no application, formal membership list, or leadership. Anyone can help, and you should expect to compromise and work together with others to bring a shared vision to life. Working groups are _spaces_, not clubs. :::info Anyone can start working group! Check out the [Start a Working Group](/EkF_hZ7zRjqdRvFFOr4n3Q) for more information about the process and requirements. ::: ## Contributing Code We love getting code contributions from the community, and there's plenty of work to go around! If you want to code but don't know what to work on, you should take a look at the open issues. The section on [Using Github Issues](#todo-using-github-issues-tags-section) details several tags that you can use to filter issues by difficulty and area. If you already know what you want to work on, make your changes and submit a pull request. The section on [Your First Pull Request](#todo-your-first-pull-request) is there to help if you get stuck. :::info When working on the engine code, it's a good idea to introduce yourself in the `#engine-dev` channel on [Discord] and tell people about your plans. Communicating your progress early and often can help you avoid avoid headaches and disagreements during code review. ::: ## Writing Docs and Examples Bevy relies heavily on Rust's inline documentation and a collection of up-to-date examples, but both are in constant need of revision and improvement. If you'd like to help us improve our learning materials, take a look at the dedicated sections on [Writing Docs](#todo-writing-docs) and [Writing Examples](#todo-writing-examples). ## Expanding The Ecosystem You can improve Bevy's ecosystem by building your own Bevy plugins and crates, or by helping to maintain existing third party libraries. Non-trivial, reusable functionality that works well with itself is a good candidate for a plugin. If it's closer to a snippet or design pattern, you may want to share it with the community on [Discord], [Reddit], or [GitHub Discussions] instead. :::info Check out our [plugin guidelines](https://bevyengine.org/learn/book/plugin-development/) for helpful tips and patterns! ::: ## Organizing Issues and Pull Requests If nothing brings you more satisfaction than seeing every last issue labeled and all resolved issues closed, feel free to hop on [Discord] and ask `@Maintainer` to be added to the Github organization. Anyone interested in helping us keep things neat and tidy is welcome to join. As will be discussed later, this role only requires good faith, a basic understanding of our development process, and a few merged pull requests. ## Teaching Others Bevy is still very young, and light on documentation, tutorials, and accumulated expertise. By helping others with their issues and teaching them about Bevy, you will naturally learn the engine and codebase in greater depth (while also making our community better)! Some of the best ways to do this are: - Answering questions on [Github Discussions], [Discord], and [Reddit](https://www.reddit.com/r/bevy). - Writing tutorials, guides, and other informal documentation and sharing them on [Bevy Assets](https://github.com/bevyengine/bevy-assets). - Streaming, writing blog posts, and creating videos. Share these in the `#devlogs` channel on [Discord]!