Quartz v4 — org-roam edition
"[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important." — Richard Hamming
Quartz is a set of tools that helps you publish your digital garden and notes as a website for free.
This fork adds first-class support for org-roam notes via ox-hugo.
🔗 Upstream documentation: https://quartz.jzhao.xyz/
Quick Start
Prerequisites
This project uses Nix. Enter the development shell, which provides Node.js 22, Elixir, and Emacs with ox-hugo:
nix develop
All commands below must be run inside this shell.
npm install
Building from org-roam notes
Your org-roam notes live in a separate directory. Point NOTES_DIR at it:
# Export notes to content/ and build the site
NOTES_DIR=/path/to/notes npm run build:notes
# Export, build, and serve with hot reload
NOTES_DIR=/path/to/notes npm run serve:notes
# Export only (wipes content/ and re-exports all .org files)
NOTES_DIR=/path/to/notes npm run export
The export script mirrors the subdirectory structure of your notes into content/
and generates a fallback index.md if your notes don't include one.
Building without org-roam notes
If you manage content/ directly with Markdown files:
# Build the site
npx quartz build
# Build and serve with hot reload
npx quartz build --serve
The site is generated in public/. When serving, visit http://localhost:8080.
Development
npm run check # type check + format check
npm run format # auto-format with Prettier
npm run test # run tests