> ## Documentation Index
> Fetch the complete documentation index at: https://docs.codecrafters.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Course Definition Reference

> Schema for the course-definition.yml file.

**slug** `string`

A unique URL-friendly identifier for your course. Example: `redis`.

**name** `string`

The name of your course. Example: `Build your own Redis`.

**short\_name** `string`

A short name for your course. Example: `Redis`.

**release\_status** `string`

The release status of your course. Accepted values: `alpha`, `beta`, `live`.

**description\_md** `string`

A markdown description for your course. 25-50 words.

**short\_description\_md** `string`

A short description of your course, \< 15 words.

**completion\_percentage** `integer`

The percentage of users who complete this course. Set to 5% if we don't have data yet.

**languages** `array`

**item properties**

**slug** `string`

Slug for the language. Example: `python`. Full list of languages available [here](https://backend.codecrafters.io/api/v1/languages).

**starter\_repository\_url** `string`

URL to the starter repository for this language. Example: [https://github.com/codecrafters-io/redis-starter-ruby](https://github.com/codecrafters-io/redis-starter-ruby)

**marketing** `object`

**properties**

**difficulty** `string`

The difficulty of the course. Accepted values: `easy`, `medium`, `hard`.

**sample\_extension\_idea\_title** `string`

A title for the sample extension idea. Example: `Geospatial Queries`

**sample\_extension\_idea\_description** `string`

A description for the sample extension idea. Example: `A Redis server that can respond to geospatial queries`

**testimonials** `array`

**item properties**

**author\_name** `string`

**author\_description** `string`

**author\_avatar** `string`

**link** `string`

**text** `string`

**stages** `array`

**item properties**

**slug** `string`

A unique identifier for this stage. Your tester will reference this value. Example: `init`

**name** `string`

The name of this stage. Example: `Respond to PING`

**description\_md** `string`

A markdown description for this stage, rendered in the 'Your Task' card.

**difficulty** `string`

A difficulty rating for this stage, from the perspective of a proficient programmer.

* `very_easy`: \<5m
* `easy`: 5-10m
* `medium`: 30m-1h
* `hard`: >1h

**marketing\_md** `string`

A short markdown description of this stage, used in the course overview page.

**tester\_source\_code\_url** `string`

Link to the source code for the test cases of this stage. Optional.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.