Overview
Quartz is a static site generator for Obsidian-flavored markdown: it parses a folder of notes, resolves wikilinks, and emits HTML. This site runs Quartz 4.5.2, configured in quartz.config.ts and quartz.layout.ts. The Quartz pages here were checked against that source, not against upstream docs.
Check which Quartz major you are on
Upstream’s current docs describe Quartz 5, which moves configuration to quartz.config.yaml, adds community plugins with npx quartz plugin add (and restores configured ones with npx quartz plugin install), and replaces quartz.layout.ts with per-plugin layout settings. The v4 branch remains available. The snippets on these pages are Quartz 4 (TypeScript config); if a repo has quartz.config.yaml, they do not apply. Sources: What’s new in Quartz 5, Migrating to Quartz 5.
Use Quartz for an Obsidian-first knowledge base
Pick Quartz when the content is a vault where wikilinks, backlinks, and a folder tree are the navigation, hosted on GitHub Pages, Cloudflare Pages, or Vercel. Pick something else for a marketing site with rich layouts (astro) or an interactive app.
Require Node 22 and update on purpose
Quartz 4.5.2 declares "node": ">=22" in engines. Use the repo’s own copy (npx quartz ...), never a global install. In a fork, npx quartz update adds the upstream remote, pulls its v4 branch, and runs npm i. Run it on a branch, rebuild, and read the diff, because customized layout, component, and plugin files can conflict.
Local commands: npx quartz build --serve for a live preview on port 8080, npx quartz build for a one-off build into public/.
Know this site’s deviations from stock Quartz
CustomHeadreplacesHead; it falls back to thesummaryfrontmatter field for the meta description.RawMarkdownserves each page’s source at<slug>.mdnext to the HTML.AliasRedirectsis patched to write an absolute canonical link in each stub, so crawlers are pointed at the real page (quartz-plugins).Graphis deliberately absent from the layout for performance (quartz-components).cdnCaching: false, so fonts are downloaded at build time and served from this domain (quartz-config).
Publish llms.txt as an asset
The Assets emitter copies every non-markdown file under content/, so content/llms.txt ships at /llms.txt. Markdown files become pages. See llms-txt for the format.
Find the topic page
| Topic | Page |
|---|---|
quartz.config.ts fields, dates, theme | quartz-config |
| Transformers, filters, emitters, ordering | quartz-plugins |
| Layout slots and custom components | quartz-components |
| Build failures and silent wrong output | quartz-debugging |
GitHub Pages, Cloudflare, Vercel, CNAME | quartz-deployment |
| Vault side | obsidian-publishing-to-quartz |