My Cms

Getting Started

System setup

Prerequisites: Node.js 20+, npm, Obsidian.

Create a new project:

npm create @karaoke-cms@latest my-site
cd my-site

Open the project folder in Obsidian as a vault. Configure karaoke.config.ts:

export default {
  title: "My Site",
  description: "What this site is about.",
  vault: "./karaoke-template-vault/",
  theme: "@karaoke-cms/theme-default",
};

Add two secrets to your GitHub repository for deployment:

SecretWhere to get it
CLOUDFLARE_API_TOKENCloudflare dashboard → API Tokens
CLOUDFLARE_ACCOUNT_IDCloudflare dashboard → Account overview

Push to main — GitHub Actions builds and deploys to Cloudflare Pages automatically.

Open in Obsidian

Your project root is an Obsidian vault. Open this folder in Obsidian to write content with full wikilink navigation, templates, and graph view.

Configure your site

Edit karaoke.config.ts to set your title, theme, and modules:

const config: KaraokeConfig = {
  title: "My Site",
  description: "What this site is about.",
  theme: "default",       // or "minimal"
  modules: {
    search: { enabled: true },
  },
};

Write content

  • Blog postscontent/blog/
  • Documentationcontent/docs/
  • Add publish: true to make a file public
  • Push to main → your site deploys automatically via GitHub Actions + Cloudflare Pages

Frontmatter reference

---
title: "My Post"          # required
publish: true             # required to appear on site
date: 2026-01-15          # optional, YYYY-MM-DD
author: "Name"            # optional
description: "..."        # optional, used in OG tags and RSS
tags: [tag1, tag2]        # optional
---

Learn more

The Handbook explains everything — it lives inside your vault and is visible at /karaoke-cms in dev mode.