# Buildkite Documentation [](https://buildkite.com/buildkite/docs)
The source files for the [Buildkite Documentation](https://buildkite.com/docs), aka the Buildkite Docs, or just docs.
To contribute, please send a pull request! :heart:
## Local docs development environment
### Before you start
There are two ways to develop and contribute to the Buildkite Documentation—non-containerized and containerized.
#### Non-containerized development
You will need Ruby, Node.js, and Yarn. Required versions are defined in [`mise.toml`](mise.toml).
Install [mise](https://mise.jdx.dev/) and run `mise install` to set up the correct versions automatically.
#### Containerized development
You will need [Docker](https://www.docker.com/) and Docker Compose.
Most desktop installations of Docker include Docker Compose by default.
On some platforms (for example, Linux-based ones), you may need to prefix `docker` commands with `sudo` or add your user to the `docker` group.
#### Get the Buildkite Docs source
As a public contributor to the Buildkite Docs, clone its source repository locally. To do so, run these commands:
```bash
git clone git@github.com:buildkite/docs.git
cd docs
git submodule update --init
```
### Run the development server
After completing all the relevant [Before you start](#before-you-start) steps above:
1. Build and run your local Buildkite Docs development server environment.
For non-containerized development, run the following:
```bash
# Check that you have Xcode Command Line Tools installed - required to build dependencies
xcode-select -p
# If not, install them
xcode-select --install
# Install dependencies
bin/setup
# Start the app on port 3000
foreman start
# Alternatively, to start the app on a port other than 3000, such as 3010
WEB_PORT=3010 foreman start
```
**Note:** After stopping the non-containerized server, run your `foreman start` command to restart it. If the `foreman start` command fails, try re-running `bin/setup` to update any dependencies before starting the server again.
For containerized development, run the following:
```bash
# Start the app on http://localhost:3000/
docker-compose up --build
```
1. Open `http://localhost:3000` (or your chosen port number) to preview the docs site.
1. After saving your modifications to a page, refresh the relevant page on this site to see your changes.
> [!NOTE]
> If you ever make more significant changes than just page updates (for example, adding a new page), you may need to stop and restart the Buildkite Docs development server to see these changes.
Learn how to contribute to the Buildkite Docs in the [CONTRIBUTING guide](./CONTRIBUTING.md).
## Contributing to the docs and style guides
The Buildkite Docs is based on the principles of common sense, clarity, and brevity.
Refer to the:
- [Contributing to the Buildkite Docs](CONTRIBUTING.md) guide for details on how to start making a contribution in a new pull request.
- [Writing](/styleguides/writing-style.md) and [Markdown syntax](/styleguides/markdown-syntax-style.md) style guides, which should provide a general idea and an insight into the language and writing style used throughout the Buildkite Docs, as well as the Markdown syntax used (including custom formatting elements).
## License
See [LICENSE.md](LICENSE.md) (MIT)