Jamdesk Documentation logo

Branding

Configure logos, favicons, navbar links, and footer content for your docs site. Supports light/dark mode variants, custom colors, and external link icons.

Branding controls the visuals readers see first: logos, favicons, and navigation links. Each one accepts light/dark mode variants.

Add your logo to the navigation header:

{
  "logo": {
    "light": "/images/logo-light.webp",
    "dark": "/images/logo-dark.webp",
    "href": "https://yourcompany.com"
  }
}
FieldDescription
lightLogo for light mode (dark logo on light background)
darkLogo for dark mode (light logo on dark background)
hrefWhere clicking the logo navigates

Use SVG logos for crisp rendering at any size. Use the same logo for light and dark if you only have one. Link previews can't show text inside an SVG logo. Convert any text to outlines (paths). See Customize the social card.

Logo Dimensions

Logos are displayed at 120px width maximum. For best results:

  • Width: 120-240px
  • Height: 30-40px
  • Format: SVG preferred

Favicon

One image for both modes:

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

Or a separate variant for each mode:

{
  "favicon": {
    "light": "/images/favicon.svg",
    "dark": "/images/favicon-dark.svg"
  }
}

dark is optional. Without it, light shows in every mode. Jamdesk emits a <link rel="icon"> for the primary favicon plus a second link with media="(prefers-color-scheme: dark)" for the dark variant.

Supported formats: SVG, PNG, ICO.

An SVG that uses currentColor for its strokes and fills adapts to the mode on its own. The browser substitutes the active foreground color.

Site Name

The name field appears in browser tabs and search results:

{
  "name": "Acme Docs",
  "description": "Documentation for the Acme API"
}

Change the title format, or leave the name out of it, with seo.titleTemplate.

Pair it with a description. Without one, search results and link previews show a generic fallback.

Description

The description field is your site's default SEO summary. Search engines show it under your site title, and social platforms use it for link previews:

{
  "description": "Build, ship, and scale documentation with the Acme platform."
}

Aim for 50-160 characters written for a reader deciding whether to click. Pages with their own description frontmatter use that instead. Every other page uses the site description.

Add links to your navbar:

{
  "navbar": {
    "links": [
      { "label": "Blog", "href": "https://yourcompany.com/blog" },
      { "label": "Pricing", "href": "https://yourcompany.com/pricing" }
    ],
    "primary": {
      "type": "button",
      "label": "Get Started",
      "href": "https://app.yourcompany.com/signup"
    }
  }
}
FieldTypeDescription
labelstringDisplay text
hrefstringURL (external or internal)

Primary Button

The primary field creates a highlighted call-to-action button:

{
  "primary": {
    "type": "button",
    "label": "Dashboard",
    "href": "https://app.yourcompany.com"
  }
}

The links and the primary button sit in the header on tablets and desktops. Phones have no room for them in the header. They appear in the menu, with the primary button pinned to the bottom. Pulsar doesn't show navbar links or the primary button.

Add social links and custom link columns to your documentation footer.

Display social media icons at the bottom of every page:

{
  "footer": {
    "socials": {
      "github": "https://github.com/yourcompany",
      "x": "https://x.com/yourcompany",
      "discord": "https://discord.gg/yourserver",
      "linkedin": "https://linkedin.com/company/yourcompany"
    }
  }
}

Supported Platforms

PlatformKeyDescription
GitHubgithubLink to your GitHub organization or repo
X (Twitter)x or twitterLink to your X/Twitter profile
LinkedInlinkedinLink to your company LinkedIn page
DiscorddiscordLink to your Discord server
SlackslackLink to your Slack community
YouTubeyoutubeLink to your YouTube channel
InstagraminstagramLink to your Instagram profile
FacebookfacebookLink to your Facebook page
RedditredditLink to your subreddit
TelegramtelegramLink to your Telegram channel
BlueskyblueskyLink to your Bluesky profile
ThreadsthreadsLink to your Threads profile
MediummediumLink to your Medium publication
Hacker Newshacker-newsLink to your Hacker News profile
WebsitewebsiteLink to your main website

Icons display in a fixed order, whatever order your config uses. GitHub and X/Twitter come first.

Add link groups above your social icons:

{
  "footer": {
    "links": [
      {
        "header": "Resources",
        "items": [
          { "label": "Blog", "href": "https://yourcompany.com/blog" },
          { "label": "Changelog", "href": "/changelog" }
        ]
      },
      {
        "header": "Company",
        "items": [
          { "label": "About", "href": "https://yourcompany.com/about" },
          { "label": "Careers", "href": "https://yourcompany.com/careers" }
        ]
      }
    ],
    "socials": {
      "github": "https://github.com/yourcompany",
      "x": "https://x.com/yourcompany"
    }
  }
}
FieldTypeDescription
linksarrayArray of link column objects
links[].headerstringColumn heading (optional)
links[].itemsarrayLinks in the column
links[].items[].labelstringDisplay text for the link
links[].items[].hrefstringURL (internal paths or external URLs)

External links (starting with http) open in a new tab. Internal links navigate within your docs.

Use frontmatter to hide the footer on individual pages:

---
title: Landing Page
hideFooter: true
---

Use it on custom landing pages or wherever the footer gets in the way.

Jamdesk Branding

By default, a "Powered by Jamdesk" link appears in the footer of your documentation pages. You can remove it.

Hiding the Branding

To remove the Jamdesk branding:

  1. Go to Settings in your Jamdesk dashboard
  2. Find the Build Settings section
  3. Toggle off Show Jamdesk Branding
  4. Trigger a new build

The branding toggle is on every plan. Changes take effect after a rebuild.

Full Branding Example

A complete branding configuration:

{
  "name": "Acme Documentation",
  "description": "Build amazing products with Acme",
  "theme": "jam",
  "colors": {
    "primary": "#6366F1",
    "light": "#818CF8",
    "dark": "#4F46E5"
  },
  "favicon": "/images/favicon.svg",
  "logo": {
    "light": "/images/logo-dark.webp",
    "dark": "/images/logo-light.webp",
    "href": "https://acme.com"
  },
  "navbar": {
    "links": [
      { "label": "API", "href": "/api/overview" },
      { "label": "Blog", "href": "https://acme.com/blog" }
    ],
    "primary": {
      "type": "button",
      "label": "Sign Up",
      "href": "https://app.acme.com/signup"
    }
  },
  "footer": {
    "socials": {
      "github": "https://github.com/acme",
      "x": "https://x.com/acme",
      "discord": "https://discord.gg/acme"
    },
    "links": [
      {
        "header": "Resources",
        "items": [
          { "label": "Blog", "href": "https://acme.com/blog" },
          { "label": "Status", "href": "https://status.acme.com" }
        ]
      }
    ]
  }
}

Custom Domain

Add your domain in the Jamdesk dashboard:

  1. Go to Settings → Domains
  2. Add your domain (e.g., docs.yourcompany.com)
  3. Configure DNS as shown
  4. Wait for verification

Your docs then load at your custom domain with automatic SSL.

What's Next?

Theming

Customize colors and typography

SEO Optimization

Improve search metadata and previews