You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Guy Sartorelli b1db62f75b
Merge pull request #242 from silverstripe/dependabot/npm_and_yarn/sharp-0.30.5
2 months ago
docker Add docker support for development environment 3 years ago
src ENH Increase callout link contrast 6 months ago
static Major CSS purge, update branding 3 years ago
.env.development Store context in site metadata 3 years ago
.gitignore BUGFIX: Make sure hash links aren't treated as relative (#226) 3 years ago
.nvmrc FIX Fix issue with handling png images 2 months ago
.prettierrc Initial commit 3 years ago DOC Add steps for updating in various scenarious 6 months ago
gatsby-browser.js WIP: Add userhelp to new site (#216) 3 years ago
gatsby-config.js MINOR: Custom meta description for each site (#229) 3 years ago
gatsby-node.js MNT Consume dev docs from the new developer-docs repo (#243) 7 months ago
gatsby-ssr.js WIP: Add userhelp to new site (#216) 3 years ago
netlify.toml Add new framework redirect 3 years ago
package.json Bump sharp from 0.23.4 to 0.30.5 2 months ago
purgecss.config.js NEW Add version banners at the top of docs pages 6 months ago
sources-docs.js MNT Update v4 docs branch to 4.12 3 months ago
sources-user.js NEW Add CMS 5 sources to user and dev docs. 6 months ago
tsconfig.json Initial commit 3 years ago
tslint.json Initial commit 3 years ago
yarn.lock Bump sharp from 0.23.4 to 0.30.5 2 months ago

Netlify Status

This repository contains the source code powering the Silverstripe CMS developer documentation website and userhelp website.

This application is build on Gatsby, a static site generator based on React. It sources content from the silverstripe/developer-docs repository for each major release.

This repository does NOT contain any documentation.

The developer documentation is stored in the silverstripe/developer-docs repository), in the en folder. For example, the documentation for the Silverstripe CMS 4.x is stored in

The userhelp documentation is stored in the silverstripe/silverstripe-userhelp-content repo.

What to update when creating a new pre-release major branch, making a stable major release, or making a major EOL

When creating a new major branch for a pre-release major version

  • Make sure you've added a new major branch to both silverstripe/developer-docs and silverstripe/silverstripe-userhelp-content
    • You probably need to add new major branches for various modules as defined in sources-user.js as well
  • Add the new major to sources-docs.js and sources-user.js
  • Add the new major to the version select in src/components/Header.tsx
  • Add the major to the PRE_RELEASE array in the getVersionMessage function in src/utils/nodes.ts

For new stable releases, you will need to do the following

  • Remove the major from the PRE_RELEASE array in the getVersionMessage function in src/utils/nodes.ts
  • Update the getDefaultVersion function's return value to the new stable major in src/utils/nodes.ts
  • Update redirects in netlify.toml

When a major goes EOL, add the major to the EOL array in the getVersionMessage function in src/utils/nodes.ts


To set up a local instance of

  • Clone this repository to an empty directory
   git clone path/to/ssdocs

Docker install

No local NodeJS nor gatsby-cli is required for this option.

  • Make sure docker and docker-compose are installed and docker daemon is running
  • Simply use ./docker/run to run gatsby commands
    • ./docker/run build would be equal to run gatsby build within a container
    • ./docker/run develop -p 8000 would run gatsby develop -p 8000 within a container.

Native install


Once cloned, from the root of the repository, run the command yarn dev-docs to instantiate a development server. This will consume all of the markdown files in both major release branches and allow you to browse the developer documentation site on http://localhost:8000 by default (see the Gatsby docs for instructions on customising the port).


To test a static build of the site, first create a production environment file.

cp .env.development .env.production

Then, run the build.

yarn build-docs
yarn serve

These commands will give you an exact representation of how the site will run on a production server, with statically generated html files and server-side rendering.

Toggling between docs and userhelp

Whether the application uses the content or is determined by the environment variable, DOCS_CONTEXT. You can set this in the .env.development file, or use one of the script shortcuts:

yarn dev-docs
yarn dev-user
yarn build-docs
yarn build-user


You can make changes directly to the source markdown files and get live updates in the development server without having to rebuild the app or even refresh the browser. The clones of the silverstripe/developer-docs repositories are in the .cache/gatsby-source-git folder in the root of this project. There are subfolders for 3/ and 4/, respective to their branch names. You can edit the files in en from there.

Just don't forget to merge your changes upstream once you're done. Building the gatsby app will not preserve your content changes, since the remote repositories are the source of truth.

Deploying content changes

Once your contribution has been merged into the master branch, it will be deployed to production via a Github action in the repository that holds the markdown files (e.g. silverstripe/developer-docs for developer docs).

Deploying app changes

Once your change is merged in to the master branch of this repository, it will be deployed to production.


To contribute an improvement to the or functionality or theme, submit a pull request on the GitHub project. Any approved pull requests will make their way onto the or sites in the next release.

If you wish to edit the documentation content, submit a pull request on the developer documentation repository or the userhelp documentation repository.