Quickstart
Install Blume, scaffold a new project, and ship your first documentation page in minutes — then grow it into a full site at your own pace.
Go from an empty folder to a running docs site in a few commands. Blume needs Node.js 22.19 or newer and a docs/ folder with at least one .md or .mdx file — there’s nothing else to set up.
Install and run
Create a project
blume init asks a few questions — where to create the project, what your
docs site is called, which template, and where your content lives — then
scaffolds the minimum surface: a content folder, a config file, and a
package.json with dev, build, and doctor scripts, plus a
.gitignore that keeps node_modules/, the generated .blume/, dist/,
and .env.local (where local secrets go) out of version control. It
installs the dependencies with the package manager that ran it. Pass --yes to skip the prompts and
take the defaults, or --no-install to only write the files.
npx blume initpnpm dlx blume inityarn dlx blume initbunx blume initnubx blume initaube dlx blume initOn pnpm 12, add --allow-build=esbuild after pnpm dlx (pnpm dlx --allow-build=esbuild blume init): pnpm 12 refuses to run the install script of esbuild, which Astro depends on, unless you approve it. Inside an existing pnpm workspace, the new folder must be listed under the workspace’s packages (pnpm installs nothing else, so init skips the install until it is), and esbuild needs allowBuilds: { esbuild: true } in the workspace’s pnpm-workspace.yaml; init reminds you of both. With Yarn 2 or later, init writes a .yarnrc.yml that switches Yarn to a node_modules install, which Blume needs; on Yarn 1, run npx blume init.
docs/
index.mdx
.gitignore
blume.config.ts
package.jsonStart the dev server
From the project directory, Blume generates the runtime and serves your docs with hot reload.
npm run devpnpm run devyarn run devbun run devnub run devaube run devBuild for production
Static HTML is written to dist/, with a local search index built over it.
npm run buildpnpm run buildyarn run buildbun run buildnub run buildaube run buildAdding Blume to a project that already has a package.json? blume init leaves existing files alone and skips the install, so install Blume yourself (npm install blume), then add "dev": "blume dev" and "build": "blume build" to its scripts, or run npx blume dev directly. The next steps init prints include both commands for your package manager.
Write your first page
Every page is Markdown or MDX with a little frontmatter — the title and description render as the page heading and intro automatically. Drop this into docs/index.mdx:
---
title: Introduction
description: Welcome to my docs.
---
Welcome! Use **Markdown** and built-in components — no imports required:
:::note
Blume ships callouts, cards, tabs, steps, and more.
:::
Save it, and the dev server reloads instantly. Navigation, search, and page metadata are inferred from your files as you add them — keep writing, and the site keeps up.