NgMd
On this page ▾
Drop a markdown file. Get a route. Compose authoring components without leaving prose.

Introduction

A modern docs starter for Angular: markdown content collections, authoring components that work inline in prose, build-time link guards, and a site frame that stays out of your way.

How it works

NgMd uses a two-layer authoring model that separates content from chrome.

Your docs live as .md files under src/content/. The path becomes the URL. Frontmatter handles metadata, marked handles rendering, Shiki handles code highlighting. Site frame and authoring components both live in your codebase under src/app/. Tailwind v4 throughout, signals and ARIA wired by hand. Edit Tailwind classes directly and ship.
Both layers are files in your repo, not imports from a library. Customise without fighting a theming API, no version conflicts, no waiting on maintainers for a feature you need today.

Get started

pnpm create ngmd@latest my-docs
npm create ngmd@latest my-docs
yarn create ngmd my-docs
bun create ngmd my-docs
cd my-docs
pnpm install
pnpm run dev

Open http://localhost:5173. You're running.

What's in the box

Translucent sticky header, sidebar accordion driven by ngmd.config.ts, breadcrumb, scroll-spy TOC, Cmd+K palette over pages plus headings plus body snippets, prev/next footer, and top-right edit + view-source actions per route. Light, dark, and auto theme cycle with no-flash inline boot script. Fuchsia accent wired through sidebar, TOC, palette, prev/next, and link hover. Route crossfades via the browser's View Transitions API. Callout, alert, card, card-grid, tabs, pill row, workflow, hero, code-block, accordion, badge, video, image (plus 4 children). Shipped as NgmdUi in src/app/ui/. Sixteen render inline in markdown via Custom Elements; code-block uses fenced ``` blocks instead. file="src/foo.ts#L5-L20" imports kept in sync with source, group="install" tabs that pre-render through Shiki, {1,3-5} line highlighting, and *Keyword inline auto-linking from ngmd.config.ts. External anchors must carry target="_blank", internal anchors must resolve to real headings. Sitemap.xml and robots.txt auto-emitted. Custom title strategy formats every page as NgMd | <title>. ngmd-new-site and ngmd-authoring ship in skills/ for Claude Code, Gemini CLI, Antigravity, and other agentic tools. Header version switcher modelled on adev / PrimeNG. Each version is its own deployment, the switcher is a flat registry of external sibling URLs from ngmd.config.ts > versions, and a status-aware banner above content nudges visitors on a next / rc / deprecated deployment back to the current stable. Drop an ngmd.api.ts scope file at the repo root. The api-gen Vite plugin walks your TypeScript through ts-morph, emits a virtual symbol index, and serves it at /api with per-symbol pages at /api/<group>/<name>. Cmd+K palette indexes symbols alongside content pages.

FAQ

An Angular docs starter on top of AnalogJS. Drop markdown files in src/content/, get a routed and branded documentation site with the site frame and features above. Yes. NgMd is AnalogJS-native. The runtime, file-based routing, SSR, and markdown content collections all come from AnalogJS. Markdown is your prose: installation guides, API references, conceptual explainers. It lives in src/content/ and is edited as plain text. Authoring components wrap prose with structure (callout, alert, card, tabs, accordion, hero, ...) and live in src/app/ui/, edited as TypeScript. They compose in .page.ts or drop inline directly in markdown. Same philosophy as shadcn/ui. Owning the source means no theming API to learn, no version conflicts, no waiting for maintainers to add a feature you need. Edit Tailwind classes directly and ship. Yes. The "drop markdown, get a docs site" pattern comes from VitePress, Starlight, Nextra, and Docusaurus. NgMd adapts the pattern for Angular on AnalogJS. NgMd is in active early development Beta. The core (markdown rendering, theming, navigation, build pipeline, Cmd+K search with Algolia DocSearch as an opt-in adapter, header version switcher, and API reference auto-generation scaffold) is stable. Test coverage, a stability declaration freezing the NgmdUi inputs and CSS tokens, and a polish bundle (Mermaid, math, diff highlighting, print stylesheet) remain on the path to 1.0. See ROADMAP.md for the full plan.

Where to next