Configuration

Each site has a configuration page in the dashboard at app.mkdn.io/sites/{id}. Changes take effect immediately — the cache is purged on save.

Branding

SettingDescription
Site titleShown in the browser tab, nav header, and social previews
Logo URLExternal image URL used as nav logo and favicon fallback
Upload logoUpload a PNG, JPEG, SVG, or WebP (takes priority over URL)

Theme

mkdn.io supports two theme modes:

  • prose (default) — clean typography with responsive layout, perfect for documentation
  • components — bring your own React component overrides

Style templates

Pick a preset to quickly apply a coordinated color and font combination:

TemplateVibe
DefaultClean, minimal — cyan accent
MidnightDark, high-contrast — blue accent
SerifWarm editorial — amber accent
TerminalMonospace hacker — green accent
CleanBusiness neutral — slate tones
AcademicClassic print — structured layout

Color scheme

Set theme.colorScheme to system (default), light, or dark.

Navigation

Control navigation visibility with theme.showNav (sidebar) and theme.showToc (per-page table of contents).

Custom domain

  1. Add your domain in the Custom Domain section of the config page
  2. Create a CNAME DNS record: yourdomain.com → custom.mkdn.io
  3. Click Check DNS — once verified, your site is live at your domain

Requires a Pro plan or higher.

Per-page frontmatter

Control rendering per page with YAML frontmatter at the top of any Markdown file:

---
title: My Page Title
description: Used in meta tags and social sharing
layout: wide          # wide | default
hero_image: /img/hero.png
tags: [guide, api]
---
KeyDescription
titlePage title (overrides # H1 for <title> tag)
descriptionMeta description
layoutwide removes the max-width constraint
hero_imageURL for an image shown above page content
tagsArray of strings shown as pill badges

mkdnsite.config.ts

For advanced configuration, add a mkdnsite.config.ts to your repository root. This file is read at startup and merged with dashboard settings (dashboard wins on conflicts).

import type { MkdnConfig } from 'mkdnsite'

export default {
  site: {
    title: 'My Docs',
  },
  theme: {
    mode: 'prose',
    colorScheme: 'system',
    showNav: true,
    showToc: true,
  },
} satisfies MkdnConfig

See the mkdnsite documentation for the full config schema.