---
title: Getting Started
weight: 1
description: "Clone the docs and make a contribution"
---
The Crossplane documentation lives in the
[docs GitHub repository](https://github.com/crossplane/docs).
## Local development
Clone the documentation and use [Hugo](https://gohugo.io/) to
build the Crossplane documentation site locally for development and testing.
### Clone the docs repository
Clone the
[Crossplane docs repository](https://github.com/crossplane/docs) with
```command
git clone https://github.com/crossplane/docs.git
```
### Download Hugo
Download [Hugo](https://github.com/gohugoio/hugo/releases/latest), the
static site generator Crossplane docs uses.
{{< hint "important" >}}
Download the `hugo_extended` version. The standard Hugo package doesn't support
the Crossplane docs CSS.
{{< /hint >}}
Extract and run Hugo with `hugo server`.
Hugo builds the website and launch a local web server on
http://localhost:1313.
Any changes made are instantly reflected on the local web server. No need
to restart Hugo.
### Contribute to a specific version
Each Crossplane version is a unique folder inside `/content`.
{{}}
The next Crossplane release uses `/content/master` as the starting
documentation.
{{< /hint >}}
Make changes to the files in the associated version folder. To make changes
across more than one version, change the files in each version folder.
## Adding new content
To create new content create a new markdown file in the appropriate location.
To create a new section, create a new directory and an `_index.md` file in the
root.
### Front matter
Each page contains metadata called
[front matter](https://gohugo.io/content-management/front-matter/). Each page
requires front matter to render.
```yaml
---
title: "A New Page"
weight: 610
---
```
`title` defines the name of the page.
`weight` determines the ordering of the page in the table of contents. Lower
weight pages come before higher weights in the table of contents. The value of
`weight` is otherwise arbitrary.
#### Alpha and beta features
Note features as alpha or beta in the front matter.
For alpha features set `state: alpha` and use `alphaVersion` to provide the
version that introduced the feature.
```yaml
---
title: Composition Functions
state: alpha
alphaVersion: "1.11"
---
```
For beta features set `state: beta` and use both `alhpaVersion` and
`betaVersion` to provide the version that introduced and graduated the feature.
```yaml
---
title: Composition Revisions
state: beta
alphaVersion: "1.4"
betaVersion: "1.11"
---
```
#### Descriptions
Hugo uses the `description` field to populate webpage metadata for search
engines.
```yaml
---
title: Compositions
weight: 30
aliases:
- composition
description: "Compositions are a template for creating Crossplane resources"
---
```
The description text isn't displayed anywhere in the docs.
### Headings
Use standard markdown for headings (`#`). The top level heading, a single hash
(`#`) is for the page title. All content headings should be two hashes (`##`) or
more.
### Hiding pages
To hide a page from the left-hand navigation use `tocHidden: true` in the front
matter of the page. The docs website skips pages with `tocHidden:true` when
building the menu.
### Changing page titles
The version dropdown list that links the same page in different versions
together looks for pages with a matching title.
If a page title changes use the front matter value `matchTitle:` and a value of
the old page title.
For example, if an older title was "Original Title" the new page would use:
```yaml
title: New Title
matchTitle: Original Title
```