Skip to content
Blume
Esc
↑↓navigate↵open⌘Jpreview

Everything your docs need,one command away.

Every Blume project ships with a command line that scaffolds, previews, builds, validates, audits, evaluates, and translates your docs. Fast by default, scriptable in CI, and built to work with your coding agents.

❯ npx blume init
✔ Installed dependencies
 
❯ blume dev
Local http://localhost:4321/
 
❯ blume build --budget-js 200
✔ JavaScript budget: 151 kB / 200 kB
 
❯ blume audit
✔ No issues found.
❯

From a blank folder to a live site.No starter to clone, no pipeline to assemble.

blume init asks a few questions and scaffolds a complete project — content folder, config, and scripts. No starter repo to clone, nothing to keep in sync with upstream.

  • Interactive by default, --yes in CI
  • Four templates: docs, api, sdk, and changelog
  • Next steps tailored to your package manager

blume dev regenerates the runtime on every change and hot-reloads before you've switched windows. Search, theming, and OG images all work in dev, exactly as they will in production.

  • Hot reload for content, config, and components
  • Include drafts and unpublished content with --preview
  • Verbose --debug logging when something's off

blume build renders the whole site, static or server, and wires up the sitemap, robots.txt, redirects, and search index. It fails on errors by default, so a broken page never ships quietly.

  • Deploy to Vercel, Netlify, Cloudflare, or Node
  • --analyze prints client bundles, largest first
  • --budget-js and --budget-css fail builds over budget

blume preview serves the last build locally, so you can click through exactly what ships before it deploys.

  • Serves the output of your last blume build
  • --host and --port bind it where you need it
  • Refuses to start until there's a build to serve

Catch it before your readers do.Links, types, and config, checked before you ship.

Every link, checked.
blume validate checks every link, anchor, and asset in your content, and --strict fails CI on warnings too.
Types, checked.
blume check runs astro check over your pages, and --strict fails on content diagnostics too.
A diagnosis in one pass.
blume doctor checks your Node version, config, pages, server features, and the packages and secrets your config needs, all without a build.
Verify while dev keeps running.
--isolated builds and type-checks in a throwaway .blume-verify/ runtime, leaving your dev server and dist/ untouched.

Audit everything you ship.Findings name the file that fixes them, not just the URL.

Findings that name the fix.
Because Blume built the site, a finding on one of your pages points at its source file, and at the frontmatter line when the key is there to fix, not just the URL a crawler saw.
A CI gate you control.
Fail on errors by default and tighten to warnings when you're ready; --url also probes a live deployment for what only the real server can tell you.
Cleared by your agent.
Hand the report to Codex or Claude Code: it fixes each finding at the source, rebuilds, and re-audits until the report comes back clean.

Docs that prove they can answer.A test suite for your documentation.

Fresh eyes, enforced.
The reader answers in an empty directory with its file, shell, and web tools off, so it sees your docs only through the same MCP search a real agent would.
Graded against your facts.
Every question lists the facts a correct answer must state, and a judge grades each answer against them. Paraphrase passes; contradiction fails.
Fixed by your agent.
--fix hands the failures to Codex or Claude Code, which adds the missing facts in the page's own voice and reruns the eval until it passes.

blume eval

4 questions · Codex

  • install-node-version, passed

    1.00
  • custom-domain, passed

    0.92
  • deploy-vercel, failed

    Missing: deployment: vercel() from blume/deploy

    0.40
  • search-providers

    skipped

fixcontent/docs/deployment.mdx

2 passed · 1 failed · 1 skipped · 1m 42s · $0.64

Docs in every language.Translated by the agent you already have.

Only what drifted.
A committed ledger stamps every translation with the source revision it came from, so editing one page retranslates one page per locale.
Structure survives.
The agent only translates text. Blume rebuilds frontmatter from the source, keeps code blocks intact, and writes every file itself.
Drift fails CI.
blume translate --check exits non-zero the moment a source page outruns its translations, so drift surfaces in the pull request.

blume translate

4 locales · Codex

Pagedehijapt
quickstart.mdxUp to dateWas out of date, now retranslatedWas out of date, now retranslatedUp to date
deployment.mdxUp to dateUp to dateUp to dateUp to date
configuration.mdxUp to dateUp to dateUp to dateUp to date
faq.mdxUp to dateUp to dateUp to dateWas missing, now translated

Stale

Missing

Up to date

Built to grow with you.Version it, sync it, extend it, or take it with you.

Versions, cut in one command.
blume version copies the current docs into a frozen snapshot, rewrites its links, and registers it, so readers can switch between releases.
Remote content, refreshed.
blume sync re-fetches remote content sources and regenerates, and --force drops the cached snapshot first.
Components you own.
blume add copies a component's source into your project, so it's yours to restyle and extend.
Take it with you.
blume eject promotes the whole runtime into a standalone Astro app you own outright. No lock-in, ever.

Your docs, gated in CI.Checks that fail the job, not your readers.

Builds fail loudly.
blume build exits non-zero on error diagnostics by default, so a page that fails validation fails the job instead of quietly dropping out.
Links stay whole.
blume validate --strict checks every link, anchor, and asset, and treats warnings as errors.
SEO holds the line.
blume audit --fail-on warning gates on the severity you choose; the default holds the line at errors.
Locales stay current.
blume translate --check reads the ledger without writing anything and exits 1 the moment a locale drifts.

.github/workflows/docs.yml

name: Docs
on: pull_request

jobs:
  docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v5
        with:
          node-version: 22
      - run: npm ci
      - run: npx blume build
      - run: npx blume validate --strict
      - run: npx blume audit --fail-on warning
      - run: npx blume translate --check

Every command.Every flag documented in the CLI reference.

Upgrade your docs with Blume.

Install today and ship a production-grade docs site in minutes. Free and open source, forever.

npx blume init