Static CMS
Star StaticJsCMS/static-cms on GitHubSponsor

Custom Links & Pages

The Static CMS exposes a window.CMS global object that you can use to register external links or links custom pages, via registerAdditionalLink. The links are displayed at the bottom of the navigation menu in the order they are registered.

React Components Inline

The registerAdditionalLink requires you to provide a React component. If you have a build process in place for your project, it is possible to integrate with this build process.

However, although possible, it may be cumbersome or even impractical to add a React build phase. For this reason, Static CMS exposes some constructs globally to allow you to create components inline: h (alias for React.createElement) as well some basic hooks (useState, useMemo, useEffect, useCallback).


registerAdditionalLink takes an AdditionalLink object with the following properties:

idstringUnique identifier for the link
titlestringDisplay text for the link
| React Function Component
  • string - The href for the link
  • React Function Component - A react component to render on the route /page/[id]
optionsobjectOptional. See Options


Available options for each additional link are:

iconNamestringThe name of a custom registered icon to display. See Custom Icons


  id: 'example',
  title: '',
  data: '',
  options: {
    icon: 'page',

Custom Page

const CustomPage = () => {
  return h('div', {}, 'I am a custom page!');

  id: 'custom-page',
  title: 'Custom Page',
  data: CustomPage,
  options: {
    icon: 'page',