Sourcegraph Docs
[!IMPORTANT]
For support, please reach out to your account team or contact
[email protected]
Welcome to the Sourcegraph documentation! We're excited to have you contribute to our docs. Our docs tech stack is powered by Next.js, TailwindCSS and deployed on Vercel. This guide will walk you through the process of contributing to our documentation.
Get started
Clone this repository to your local machine using the following command:
git clone https://github.com/sourcegraph/docs.git docs
Navigate to the project directory by typing the following command in your terminal:
cd docs
Before the dependencies are installed make sure your local machine has the
following versions of node and pnpm installed:
- node:
v24.21.0 - pnpm:
10.25.0
mise available you can install the above versions for
only this repository by running the following command from your terminal in the
root folder:
mise install
Now that the base requirements of the project have been satisfied, we can install the required dependencies to run the development server!
pnpm install
Spell checking is not part of the project dependencies. To run it locally:
npx cspell@10 --no-progress --dot '*/'
Next, run the development server:
pnpm run dev
Finally, open http://localhost:3000 in your browser
to view the website.
Writing and contributing to Sourcegraph Docs
(Easy) Using GitHub to edit existing files
You can easily update existing docs pages using GitHub's file editor. All you need to do is:
- Find the corresponding
.mdxfile in the folder structure. - Click the pencil icon to open the file editor.
- Make your changes.
- Click on the green "Commit changes..." button.
- Provide a Commit message and an Extended description.
- Click on the green "Propose changes" button to create a PR.
- Add a PR reviewer to the Reviewers panel by clicking on the gear icon.
- Post a link to your PR in the
#docsSlack channel to get a quick review.
(Advanced) Local dev environment
To add new or update existing docs content. Create a new branch and checkout by via:
git switch -c BRANCH_NAME_HERE
Folder structure
The folder structure is exactly the same here. All the docs reside within the
/docs folder. Here you'll find separate folders for every docs section like
cody, code-search, cli, etc.
- Navigate to the relevant section for your contribution
- If you're adding a new page, create a new MDX file (e.g.,
my-new-page.mdx)
Frontmatter
Each MDX file can include frontmatter at the top of the file to configure page metadata. Here are the supported fields:
| Field | Type | Required | Description |
| ------------- | ------ | -------- | ------------------------------------- |
| title | string | No | The page title |
| date | date | No | Last modified date (used in sitemap) |
| seoPriority | number | No | Sitemap priority 0.0–1.0, default 0.5 |
| preview | bool | No | Hidden; 404 without ?preview query |
Example:
---
title: Getting Started with Cody
date: 2024-01-15
seoPriority: 0.8
---
Using MDX
We use MDX for our documentation, which allows you to seamlessly integrate JSX (React components) within Markdown. Write your content using standard markdown syntax. For example,
# This is heading 1
This is an introductory paragraph.
This is heading 2
This is heading 3
These are the details for heading three.
This is how you add a demo-link
- This is a bullet 1
- This is bullet 2
- This is bullet 3
Including React Components
The only difference with this new stack is its ability to use React components.
We have a set of reusable React components located in the src/components
directory. These components are designed to enhance the user experience and
maintain consistency across our documentation.
For example, adds a note, info, tip, or warning notice:
<Callout type="note">This feature is currently in Beta for all users.</Callout>
!Callout components rendered in the docs
The components available in MDX are registered in
src/components/MdxComponents.tsx:
| Component | Use |
| -------------------------- | ----------------------------------------------- |
| | type: note, info, tip, or warning |
| | Which plan or tier a feature needs |
| | Card grid; takes title, |
| | description, href, icon |
| | Card grid with images; adds |
| | imgSrc and imgAlt |
| | grid, same props as LinkCard |
| | Tabbed content; |
| | Collapsible section |
| | Inline label |
| | Release tables on /releases, also |
| | |
| | Page-specific widgets, also |
| | and |
For example:
<QuickLinks>
<QuickLink
title="Terraform on AWS"
icon="installation"
href="/self-hosted/executors/deploy-executors-terraform-aws"
description="Deploy executors on AWS with Terraform."
/>
</QuickLinks>
Adding a link
To add a link to any docs page, use the following routing syntax:
Link text.
- Do not include
/docsin the link paths. The base URL will be
sourcegraph.com/docs
- There should be no file extension in the path name
- Link to the Cody Quickstart
- Hash-link to a heading:
Verify the install
Adding media assets (images, videos and gifs)
You can upload images, videos and gifs to Sourcegraph docs. For a more detailed instructions visit this page.
Note: Make sure to use ImageOptim.app to reduce
the size of the images before uploading, since large images degrade page
loading speed.
Previewing Changes
Locally
As you make changes to the documentation, the development server will
automatically update. Review your changes by navigating to
http://localhost:3000 in your browser.
Previewing Vercel Deployments
When you open a PR Vercel deploys and provides you with a preview deployment link. To view your deployment, click the Visit Preview link from Vercel's deployment panel in your PRs and you get a preview of your docs
!Vercel deployment panel on a PR
Submitting your Contribution
Once you're satisfied with your changes, follow these steps:
- Commit your changes
- Create a pull request to the
Pull request checks
GitHub Actions comment on your PR with anything it introduces:
- Broken links: internal links and
#anchorsthat no longer resolve,
pnpm run check links --check-anchors --check-self-links.
- Broken redirects: entries in
src/data/redirects.tswhose destination
node dev/check-redirects.mjs.
- Spelling: CSpell on the lines you added, plus the PR title and
cspell-allow-list.txt, in alphabetical order.
- Preview links: direct links to the pages you changed on the Vercel
Thank you for contributing to Sourcegraph documentation! Your efforts help us provide top-notch learning experiences for our users. If you have any questions or need assistance, feel free to reach out.