How to publish your notes for free with Quartz
Based on Nicole van der Hoeven's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.
Quartz is a free static site generator that converts Markdown into HTML, but it relies on separate tools for note authoring and hosting.
Briefing
Quartz is a free static site generator built to publish Markdown notes from Obsidian (or any Markdown source) without paying for Obsidian Publish or being locked into a single hosted service. The core setup pairs Obsidian for authoring, Quartz for converting Markdown into HTML and generating a navigable site, and GitHub Pages for hosting—turning a local notes vault into a public website with link navigation and graph-style views.
The workflow starts by separating the publishing problem into three parts: creating/editing notes as Markdown, converting Markdown into HTML, and hosting the resulting site on a server. Obsidian Publish handles all three, but it’s paid, can’t be self-hosted, and has performance and customization limitations. Quartz only covers the middle step—static site generation—so users keep their existing note-taking setup while gaining more control over the publishing pipeline.
The guide then lays out a step-by-step build from scratch. First, Quartz is installed by cloning or copying its open-source repository locally, then meeting its minimum Node.js and NPM requirements and running dependency installation. After that, Quartz is initialized with a choice of content setup options (the walkthrough uses an “empty Quartz” start) and a link-resolution mode tailored to Obsidian-style vault links.
Next comes GitHub setup. A new public GitHub repository is created without initializing it, then the local Quartz repository is re-pointed to the new origin remote. Synchronization is performed using Quartz’s sync command so the Quartz project structure appears in GitHub. After that, the local Quartz folder is opened as an Obsidian vault so Markdown content can be created inside the expected structure.
Content authoring is handled in Obsidian using Quartz-compatible conventions. The walkthrough installs Obsidian plugins such as Longform and Templater, then creates a Longform project and a README. It also adds templates for chapters (and optionally scenes) so new notes follow the format Quartz expects—using Templater variables like title and draft status and placing templates in a Templates folder.
Once content exists, changes are pushed to GitHub and previewed locally by running Quartz’s server/preview command. The site is then made publicly accessible by adding a GitHub Actions workflow (deploy.yml) that runs Quartz sync and builds the static output. In GitHub’s Pages settings, the source is set to GitHub Actions, and the resulting site becomes reachable at the standard GitHub Pages URL.
A final optional step supports custom domains. DNS configuration requires an A record pointing to GitHub’s IP addresses, and GitHub Pages settings are updated to use the domain and optionally enforce HTTPS. The walkthrough notes that DNS propagation can be slow and frustrating, so patience is required.
The conclusion frames Quartz as a complement rather than a full replacement: Obsidian Publish remains convenient for most note publishing, while Quartz is used for specific projects where a more controllable static-site workflow is valuable. The guide also credits Quartz’s developer, Jacky Zhao, and thanks a community member for testing static site generators and encouraging the switch.
Cornell Notes
Quartz is a free static site generator designed to publish Markdown notes by converting them into HTML and producing a website structure. It doesn’t replace note-taking tools; it plugs into an existing workflow where Obsidian (or another editor) creates Markdown, Quartz generates the static site, and a hosting provider serves it online. The walkthrough uses GitHub Pages as the host, with GitHub Actions to automate deployment. The setup requires installing Quartz with the right Node.js/NPM versions, initializing a Quartz project, syncing to a GitHub repo, opening the Quartz folder as an Obsidian vault, and creating content using Quartz-compatible templates (via Longform and Templater). A custom domain is optional and involves DNS A records plus GitHub Pages configuration.
Why isn’t Quartz a direct replacement for Obsidian Publish, and what role does it actually play?
What are the three components involved in publishing Markdown notes online?
What does the setup require before Quartz can generate a site?
How does the guide make Quartz content work with Obsidian authoring?
How does the site get deployed automatically to GitHub Pages?
What’s involved in using a custom domain with Quartz on GitHub Pages?
Review Questions
- What publishing step does Quartz handle, and which steps must be handled by other tools in a Quartz-based workflow?
- Why do templates and link-resolution settings matter when generating a Quartz site from an Obsidian vault?
- What changes are required in GitHub Pages settings to deploy a Quartz-generated site using GitHub Actions?
Key Points
- 1
Quartz is a free static site generator that converts Markdown into HTML, but it relies on separate tools for note authoring and hosting.
- 2
A practical workflow pairs Obsidian for Markdown creation, Quartz for static site generation, and GitHub Pages for hosting.
- 3
Quartz installation includes meeting minimum Node.js and NPM requirements, installing dependencies, and initializing a project with appropriate link-resolution behavior.
- 4
GitHub deployment is automated by adding a GitHub Actions workflow (deploy.yml) and configuring GitHub Pages to use GitHub Actions as the source.
- 5
To make Quartz work smoothly with Obsidian, the Quartz folder should be opened as an Obsidian vault and content should follow Quartz’s expected structure using templates.
- 6
Custom domains require DNS A records pointing to GitHub’s IP addresses and GitHub Pages configuration updates, with DNS propagation delays to expect.
- 7
Quartz is positioned as a complement to Obsidian Publish—use the best tool for each publishing need rather than switching everything at once.