Prerequisites
Before you begin developing for Modrinth, ensure you have the following tools installed:Required Tools
Node.js
pnpm
Version: 9.15.0Install globally:Verify installation:
Rust
Docker
Optional Tools
Tauri Prerequisites (for Desktop App)
Tauri Prerequisites (for Desktop App)
If you plan to work on the desktop app, follow the Tauri prerequisites guide for your platform:macOS: Xcode Command Line ToolsLinux: Additional system dependenciesWindows: Microsoft Visual Studio C++ Build Tools
Development Tools
Development Tools
Recommended IDE extensions:
- VS Code: Rust Analyzer, Vue Language Features (Volar), ESLint, Prettier
- IntelliJ IDEA: Rust plugin, Vue.js plugin
- Rust Tools: rustfmt, clippy (installed with Rust)
Cloning the Repository
1
Clone the Repository
Clone the Modrinth monorepo to your local machine:Or if you’ve forked it:
2
Check Node Version
The repository includes a This will automatically use Node.js version specified in
.nvmrc file. If you use nvm:.nvmrc.Installing Dependencies
1
Install JavaScript Dependencies
Install all frontend dependencies using pnpm:This will install dependencies for all packages in the monorepo workspace.
2
Install Rust Dependencies
Rust dependencies are managed by Cargo and will be downloaded automatically when you build.Verify Rust toolchain:
Running Development Servers
Web Interface (Frontend)
1
Copy Environment File
Navigate to the frontend directory and copy the environment template:The
.env.local file contains default development settings.2
Start Development Server
From the root directory, run:The web interface will be available at
http://localhost:3000Desktop App
1
Copy Environment File
Navigate to the app-lib directory and copy the environment template:
2
Start Development Server
From the root directory, run:This will compile the Rust backend (Theseus) and launch the Tauri app with hot-reloading for the Vue frontend.
The first build of the desktop app may take several minutes as Cargo compiles all dependencies.
Backend API (Labrinth)
See the Local Setup guide for detailed instructions on running Labrinth with all required services.UI Component Library (Storybook)
http://localhost:6006 for developing and testing UI components.
Verify Your Setup
Run these commands to verify everything is working:Making Your First Contribution
Now that your environment is set up:1
Find an Issue
Browse the issue tracker for issues labeled
good first issue or help wanted.2
Create a Branch
Create a new branch for your work:
3
Make Changes
Edit the code, following our Code Style guidelines.
4
Test Locally
Test your changes in the development server:
5
Run Pre-PR Checks
Before submitting a PR:For Frontend:For Labrinth:
6
Commit and Push
Commit your changes with a clear message:
7
Create Pull Request
Go to GitHub and create a pull request from your branch.
Development Commands Reference
Next Steps
Code Style
Learn about formatting, naming conventions, and commit messages
Architecture
Understand the monorepo structure and technology stack
Local Setup
Set up Labrinth backend with Docker services
Contributing
Read the full contribution guidelines
Getting Help
If you run into issues:- Check the README files in specific app/package directories
- Join the Discord server and ask in
#development - Open an issue on GitHub
- Review the CLAUDE.md files for project-specific instructions
