Welcome, potential contributor! We're excited to have you join the Graphite project. It is our goal to make the process as smooth as possible. This guide will serve as your library of knowledge to help you get started contributing to the project. If you find any information missing or unclear, please let us know through Discord or submit a pull request to help document the process for future contributors.
Required experience level
Our aim is to make the process as accessible as possible for first-time Graphite contributors with solid computer science foundations to get started, even without prior open source experience. Many contributors have remarked that they found our process notably more welcoming and straightforward than open source projects they've previously tried contributing to.
However, please bear in mind that developing Graphite is not for beginner programmers. It is a complex, cutting-edge software engineering endeavor that requires at least a strong grasp of programming principles (although not necessarily Rust; you can learn that as you go).
If you are at least a junior-level developer or a self-motivated student who has built a number of self-directed, non-trivial personal projects (especially if they involve graphics), then you should be well-prepared to contribute to Graphite. If you are only a couple years into your programming journey, be warned that you will find Graphite frustratingly above your current skill level and we will be unable to support you adequately. The Graphite project is not a learning platform or a classroom for inexperienced developers, but with the requisite skills, it is a great way to develop real-world engineering experience and get involved in something meaningful.
Do not make the mistake of assuming AI tools and agents can be a substitute for your own skills and experience. If you use AI tools in your workflow, read our AI contribution policy.
Discord communication
The next page will cover how to compile the Graphite source code. But first, make sure you've joined our Discord server and assigned yourself the "🤖 Interested in contributing code" role from the #🙂welcome channel. (And after your first PR is accepted and merged, you should post a request in #📄development to be assigned the "Code Contributor" role.)
This is semi-mandatory, particularly if you intend to become a regular contributor on the team, because it is how our team communicates and is just as central to our process as GitHub.
Done that? Alright, proceed to the next page!