Skip to content

Getting started

Contributing to Modrinth

Every public-facing aspect of Modrinth, including everything from our API/backend and frontend to our Gradle plugin and launcher, is released under free and open source licenses on GitHub. As such, we love contributions from community members! Before proceeding to do so, though, there are a number of things you’ll want to keep in mind throughout the process, as well as some details specific to certain projects.

Things to keep in mind

Consult people on Discord

There are a number of reasons to want to consult with people on our Discord before making a pull request. For example, if you’re not sure whether something is a good idea or not, if you’re not sure how to implement something, or if you can’t get something working, these would all be good opportunities to create a thread in the #development forum channel.

If you intend to work on new features, to make significant codebase changes, or to make UI/design changes, please open a discussion thread first to ensure your work is put to its best use.

Don’t get discouraged

At times, pull requests may be rejected or left unmerged for a variation of reasons. Don’t take it personally, and don’t get discouraged! Sometimes a contribution just isn’t the right fit for the time, or it might have just been lost in the mess of other things to do. Remember, the core Modrinth team are often busy, whether it be on a specific project/task or on external factors such as offline responsibilities. It all falls back to the same thing: don’t get discouraged!

Code isn’t the only way to contribute

You don’t need to know how to program to contribute to Modrinth. Quality assurance, supporting the community, coming up with feature ideas, and making sure your voice is heard in public decisions are all great ways to contribute to Modrinth. If you find bugs, reporting them on the appropriate issue tracker is your responsibility; however, remember that potential security breaches and exploits must instead be reported in accordance with our security policy.

Project-specific details

If you wish to contribute code to a specific project, here’s the place to start. Most of Modrinth is written in the Rust language, but some things are written in other languages/frameworks like Nuxt.js or Java.

Most of Modrinth’s code is in our monorepo, which you can find here. Our monorepo is powered by Turborepo.

Follow the project-specific instructions below to get started:

Documentation

The documentation (which you are reading right now!) is the place to find any and all general information about Modrinth and its API. The instructions are largely the same as knossos, except that the docs have no lint.