# 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](https://jzhao.xyz/posts/networked-thought) and notes as a website for free. This fork adds first-class support for [org-roam](https://www.orgroam.com/) notes via [ox-hugo](https://ox-hugo.scripter.co/). 🔗 Upstream documentation: https://quartz.jzhao.xyz/ [Join the Discord Community](https://discord.gg/cRFFHYye7t) ## Quick Start ### Prerequisites This project uses Nix. Enter the development shell, which provides Node.js 22, Elixir, and Emacs with ox-hugo: ```bash nix develop ``` All commands below must be run inside this shell. ```bash npm install ``` ### Building from org-roam notes Your org-roam notes live in a separate directory. Point `NOTES_DIR` at it: ```bash # 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: ```bash # 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 ```bash npm run check # type check + format check npm run format # auto-format with Prettier npm run test # run tests ``` ## Sponsors