We're thrilled to have you as a contributor! This section explains how to set up a development environment for modifying TerriaJS, and how to use that modified version in a TerriaMap. It also has suggestions for contributing.

## For all contributors

- [Setting up a development environment](./development-environment.md)
- [Architecture](./architecture.md): The big picture of TerriaJS's architecture **(version 7)** - this page requires major changes to be updated for TerriaJS version 8
  - [New model layer documentation](./model-layer.md) **(version 8)**
  - [Traits in depth](./traits-in-depth.md) **(version 8)**
    - [Strata examples](./strata-examples.md) **(version 8)**
  - [Result object and Error Handling](./result-object-and-error-handling) **(version 8)**
  - [Init source](./init-sources.md) **(version 8)**
- [Frontend style guide](./frontend-style-guide.md)
- [Development translation guide](./translation-guide-dev.md)
- [Problems and Solutions](./problems-and-solutions.md)
- [Contributing to TerriaJS](https://github.com/TerriaJS/terriajs/blob/main/CONTRIBUTING.md): How to submit a pull request. Please read! :)

## Coming from version 7?

- [Version 8 migration guide](./migration-guide.md)

## Special cases

- [Using a Custom Version of Cesium](using-a-custom-version-of-cesium.md)
