A folder of markdown
docs/
├ index.md
├ guide.md
└ images/
Zero-config static-site CLI.
Dev, build, deploy. Four themes.
$
npx @exor404/mdstack ./docs
$
npm i -D @exor404/mdstack
$
npx mdstack ./docs
$
pnpm add -D @exor404/mdstack
$
pnpm exec mdstack ./docs
$
yarn add -D @exor404/mdstack
$
yarn mdstack ./docs
$
npm i -g @exor404/mdstack
$
mdstack ./docs
How it works
No config to write. No framework to learn. Just point mdstack at a folder.
A folder of markdown
docs/
├ index.md
├ guide.md
└ images/ One command
$ mdstack ./docs
→ HMR dev server
→ live reload
→ ⌘K palette A static site
dist/
├ index.html
├ guide/...
├ sitemap.xml
└ robots.txt Features
The features below are what mdstack ships with today — no plugin marketplace, no hidden tiers.
GFM tables, footnotes, ==highlights==, <kbd>, GitHub-style callouts, and <details>.
Inline $a^2 + b^2$ and block $$\int$$ rendered with KaTeX. Fonts auto-bundled.
Fenced ```mermaid blocks render as SVG and follow the active light/dark theme.
Shiki tokenizes every fenced code block, theme-matched per built-in theme.
Fuzzy search over titles, headings, and body prose. Matches show a highlighted snippet.
The sidebar fills itself from your headings. Active section highlights as you scroll.
Toggle in the header, persisted in localStorage. Honors the system preference on first load.
Self-contained dist/ with robots.txt and sitemap.xml. Deploy anywhere static.
angular, vue, nuxt, homebrew. Pick one, override with --theme any time.
Themes
Four themes, one config line. Switch any time.
Install
Five ways to get mdstack on your machine. The CLI binary is always called mdstack.
npx @exor404/mdstack ./docs npx npm i -D @exor404/mdstack npm pnpm add -D @exor404/mdstack pnpm yarn add -D @exor404/mdstack yarn npm i -g @exor404/mdstack global mdstack ./docs # dev server with HMR mdstack build ./docs # static build → ./docs/dist/ mdstack preview ./docs # serve the built dist/ CLI
One binary. Three verbs. One flag that matters.
| Command | What it does |
|---|---|
dev | Dev server with HMR (default if command omitted) |
build | Static build to <folder>/dist/ |
preview | Serve the built dist/ |
Flags
--theme, -t <name> override the theme from mdstack.config.js
one of: angular, vue, nuxt, homebrew FAQ
dist/ directory when you build. No config required — drop the folder, get a site.angular, vue, nuxt, or homebrew via mdstack.config.js or the --theme flag. Custom theme authoring is on the roadmap — for now you can fork a theme CSS file and load it locally.dist/ is self-contained — drop it on Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3 + CloudFront, an nginx server, or a Docker container with any static file server.0.x → 1.0. Pin your version in package.json and read the changelog before bumping.