Markdesk Help

Configuration Reference

Last updated: February 13, 2026

All Markdesk settings live in a single file: markdesk.config.ts in the project root.

Full config example

import type { MarkdeskConfig } from './src/lib/config';

const config: MarkdeskConfig = {
  name: 'My Product',
  siteUrl: 'https://help.example.com',
  productUrl: 'https://example.com',
  supportEmail: 'support@example.com',
  fromEmail: 'help@example.com',
  colors: { primary: '#4b68af' },
  emailSender: 'resend',
  footer: { termsUrl: '', privacyUrl: '' },
  allowedOrigins: [],
  beacon: { title: 'Help', autoShowModal: true },
};

export default config;

Settings reference

name

Your product or company name. Used in the header, page titles, and metadata.

siteUrl

The public URL of your help center (e.g. https://help.example.com). Used for generating canonical URLs, the beacon's content API, and CORS headers.

productUrl

The URL of your main product or website. Used for the "Back to [product]" link in the header.

supportEmail

The email address that receives contact form submissions.

fromEmail

The sender email address used when the contact form sends emails. Must be verified with your email provider.

colors.primary

Your primary brand color as a hex value. This is injected as a CSS variable (--color-primary) and used for buttons, links, and accents throughout the site and beacon.

emailSender

Which email provider to use for the contact form. Options:

  • 'resend' — Requires RESEND_API_KEY environment variable
  • 'sendgrid' — Requires SENDGRID_API_KEY environment variable
  • 'nodemailer' — Requires SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS environment variables

See Email Providers for setup details.

footer.termsUrl / footer.privacyUrl

URLs for your Terms of Service and Privacy Policy pages. Displayed in the site footer. Leave empty to hide.

allowedOrigins

An array of additional domains allowed to make cross-origin requests to the help center API. This is needed when the beacon widget is embedded on a different domain than the help center.

allowedOrigins: ['example.com', 'app.example.com'],

Localhost is always allowed in development. The siteUrl domain is always allowed.

beacon.title

The title displayed in the beacon panel header. Defaults to 'Help'.

beacon.autoShowModal

Whether to automatically show product update modals to all visitors. Defaults to true.

Set to false if you want to control when modals appear — for example, only after a user logs in. Then call Markdesk.showModal() in your app when ready. See the Beacon Widget docs for details.

Was this article helpful?

Still need help?

Our team is here to answer your questions.

Contact us