docs.json Reference

Complete configuration reference for your documentation site

The docs.json file is the central configuration for your Jamdesk documentation site.

Key settings from your docs.json are displayed in the Dashboard under Project Settings → Configuration Highlights. This view is read-only and updates automatically after each successful build.

Required Fields

name

Type: string (required)

Your documentation site's name. Displayed in the header and browser tab.

{ "name": "Acme API Docs" }

theme

Type: "jam" | "nebula" | "pulsar" (required)

Clean, modern design with Inter font. Header-based navigation.

Best for: Most documentation sites, API references

colors

Type: object (required)

FieldTypeRequiredDescription
primarystring (hex)YesMain brand color
lightstring (hex)NoLight theme accent
darkstring (hex)NoDark theme accent
{
  "colors": {
    "primary": "#635BFF",
    "light": "#7C75FF",
    "dark": "#4F46E5"
  }
}

Branding

favicon

Type: string

Path to your favicon file (SVG recommended).

{ "favicon": "/images/favicon.svg" }

Type: object

FieldTypeDescription
lightstringLogo for light mode
darkstringLogo for dark mode
hrefstringURL when logo is clicked
{
  "logo": {
    "light": "/images/logo-light.webp",
    "dark": "/images/logo-dark.webp",
    "href": "https://yoursite.com"
  }
}

hostAtDocs

This setting is controlled via the Dashboard project settings, not in docs.json.

When enabled in the dashboard, your site is served at /docs instead of the root. This is useful when hosting docs alongside a marketing site on the same domain.

tabsPosition

Type: "top" | "left"

Controls where navigation tabs are displayed.

ValueDescription
"top"Tabs appear in the header tab bar
"left"Tabs appear at the top of the sidebar

Default value depends on your theme:

ThemeDefault
jam"left"
nebula"left"
pulsar"top"
{ "tabsPosition": "left" }

anchors

Type: array

External links that appear at the top of the sidebar on all pages.

FieldTypeRequiredDescription
namestringYesDisplay text
hrefstringYesURL (external link)
iconstringNoFont Awesome icon name
{
  "anchors": [
    { "name": "Blog", "href": "https://blog.example.com", "icon": "newspaper" }
  ]
}

Type: object

The navigation structure for your documentation. See Navigation for detailed documentation.

{
  "navigation": {
    "tabs": [
      {
        "tab": "Docs",
        "icon": "book-open",
        "groups": [
          {
            "group": "Getting Started",
            "pages": ["introduction", "quickstart"]
          }
        ]
      }
    ]
  }
}

Type: object

FieldTypeDescription
linksarrayNavigation links
primaryobjectPrimary CTA button
{
  "navbar": {
    "links": [
      { "label": "Blog", "href": "/blog" }
    ],
    "primary": {
      "type": "button",
      "label": "Dashboard",
      "href": "https://app.example.com"
    }
  }
}

Type: object

Configure the page footer with social links and custom link columns.

{
  "footer": {
    "socials": {
      "github": "https://github.com/yourorg",
      "x": "https://x.com/yourhandle",
      "discord": "https://discord.gg/yourserver"
    },
    "links": [
      {
        "header": "Resources",
        "items": [
          { "label": "Blog", "href": "https://example.com/blog" },
          { "label": "Changelog", "href": "/changelog" }
        ]
      }
    ]
  }
}
FieldTypeDescription
socialsobjectSocial media platform URLs
linksarrayLink column configurations
links[].headerstringColumn heading
links[].itemsarrayArray of { label, href } objects

Supported social platforms: github, x, twitter, linkedin, discord, slack, youtube, instagram, facebook, reddit, telegram, bluesky, threads, medium, hacker-news, website

Styling

styling.latex

Type: boolean

Enable LaTeX math rendering with KaTeX. When enabled, you can use $...$ for inline math and $$...$$ for block equations.

{
  "styling": {
    "latex": true
  }
}

See Math & LaTeX for usage details.

Full Example

{
  "$schema": "https://jamdesk.com/docs.json",
  "name": "Acme Documentation",
  "description": "Learn how to use Acme",
  "theme": "jam",
  "colors": {
    "primary": "#635BFF"
  },
  "favicon": "/images/favicon.svg",
  "logo": {
    "light": "/images/logo-light.webp",
    "dark": "/images/logo-dark.webp"
  },
  "styling": {
    "latex": true
  },
  "anchors": [
    { "name": "Blog", "href": "https://blog.acme.com", "icon": "newspaper" }
  ],
  "navbar": {
    "links": [
      { "label": "Support", "href": "/support" }
    ],
    "primary": {
      "type": "button",
      "label": "Dashboard",
      "href": "https://app.acme.com"
    }
  },
  "navigation": {
    "tabs": [
      {
        "tab": "Docs",
        "icon": "book-open",
        "groups": [
          {
            "group": "Get Started",
            "pages": ["introduction", "quickstart"]
          }
        ]
      },
      {
        "tab": "API Reference",
        "icon": "code",
        "groups": [
          {
            "group": "Endpoints",
            "pages": ["api/users", "api/posts"]
          }
        ]
      }
    ]
  }
}