localhost:4000 so you can preview changes before opening a pull request.
Prerequisites
Node.js v24
The site requires Node.js
^24. Download the LTS installer from nodejs.org or use a version manager like nodenv. The required version is specified in package.json.Git
You’ll need Git to clone the repository and manage branches. See the Set up Git guide if you’re starting from scratch.
Set up your environment
Fork and clone the repository
Fork If you only want to read the source without contributing, you can clone the upstream directly:
github/docs on GitHub, then clone your fork locally:Install dependencies
Install all Node.js dependencies using a clean install. This does not modify
package-lock.json:Run
npm ci again any time you pull new changes from the remote — dependency versions may have been updated.Build static assets
Generate the JavaScript and CSS bundles needed by the application:You only need to run this once per branch checkout. It does not need to be re-run when you edit Markdown content.
Start the development server
Start the local Node.js/Express server:Open http://localhost:4000 in your browser. You should see the full docs site running locally.To stop the server, press
Ctrl+C in your terminal.Make your first content edit
All English documentation lives in the/content directory, organized by product. Files are written in Markdown and use YAML frontmatter and Liquid templating.
Find and edit a content file
Navigate to the relevant file under Every content file starts with frontmatter:Edit the Markdown body below the frontmatter. The dev server does not hot-reload content — refresh your browser at
content/. For example, to edit the GitHub CLI overview:localhost:4000 to see changes.Run the content linter
The content linter enforces style, structure, and quality rules across all Markdown files. Run it on your changed files before committing:To lint all changed files at once:Linting errors will block your pull request’s required checks. Fix them locally to save time.
Open a pull request
Push your branch to your fork and open a pull request againstgithub/docs:
Contribution guidelines
Learn about the review process, what reviewers look for, and how long merges take.
Translations
Understand how merged content is translated into supported languages automatically.
Enabling additional languages locally
By default, the local server only runs with English enabled. To run with additional languages, setENABLED_LANGUAGES inline when starting the server:
.env file to avoid typing it every time. Restart the server after any change to ENABLED_LANGUAGES. Supported language codes are defined in src/languages/lib/languages.ts.
Next steps
Site architecture
Understand how the full repository is organized across content, data, and source directories.
Frontmatter reference
Learn all available frontmatter fields, including versions, redirects, and layout options.
Versioning
Version content across GitHub.com, GitHub Enterprise Server, and GitHub Enterprise Cloud.
Liquid helpers
Use Liquid tags for conditional content, reusables, variables, and tool switching.