docs/content/references/contribute/sui-environment.mdx
Before you start developing with Sui and Move, you should familiarize yourself with how to contribute to Sui, how Sui is structured, what tools and SDKs exist, and what plugins are available to use in your IDE.
The recommended way to contribute to the Sui repository is to fork the project, make changes on your fork, then submit a pull request (PR). The Sui repository is available on GitHub: https://github.com/MystenLabs/sui.
To create a local Sui repository:
Go to the Sui repository on GitHub.
Click the Fork button to create a copy of the repository in your account.
In your forked repository on GitHub, click the green Code <> button and copy the HTTPS URL GitHub provides.
Open a terminal or console on your system at the location you want to save the repository locally. Type git clone and paste the URL you copied in the previous step and press Enter.
Type cd sui to make sui the active directory.
You can use any branching strategy you prefer on your Sui fork. Make your changes locally and push to your repository, submitting PRs to the official Sui repository from your fork as needed.
:::tip
Be sure to synchronize your fork frequently to keep it up-to-date with active development.
:::
The Sui repo is a monorepo, containing all the source code that is used to build and run the Sui network, as well as this documentation.
The root folder of the Sui monorepo has the following top-level folders:
The following primary directories offer a good starting point for exploring the Sui codebase:
The Sui repository includes four primary branches: devnet, testnet, mainnet, and main.
The devnet branch includes the latest stable build of Sui. Choose the devnet branch if you want to build or test on Sui Devnet. If you encounter an issue or find a bug, it may already be fixed in the main branch. To submit a PR, you should push commits to your fork of the main branch.
The testnet branch includes the code running on the Sui Testnet network.
The mainnet branch includes the code running on the Sui Mainnet network.
The main branch includes the most recent changes and updates. Use the main branch if you want to contribute to the Sui project or to experiment with cutting-edge functionality. The main branch might include unreleased changes and experimental features, so use it at your own risk.