A digital garden is a low-effort little plot on the internet — a place to tend your thoughts and watch them grow. The best part: you can grow one for free. Here are two ways to do it.
The easy way: let your agent do it
If you live in an agentic harness already — Claude Code, Cursor, Codex — just hand it the work. Make a new empty folder for your garden, then open it in your harness: either launch a terminal in that folder and start your CLI there (claude, codex…), or open the harness’s own app and point it at the folder. Now paste this:
I want to build a digital garden for free using Quartz, hosted on Netlify. Walk me through it end to end and run the commands for me, pausing whenever you need something only I can do (creating accounts, clicking buttons in a browser, pointing a domain).
1. Check I have Node v22+ and npm installed; help me install them if not.
2. Clone Quartz (`https://github.com/jackyzha0/quartz.git`), install deps, and run `npx quartz create` to scaffold my content.
3. Build and serve it locally so I can see it at `localhost:8080`.
4. Show me how to add a note as a Markdown file in `content/`, and how to link notes together with `[[wikilinks]]` so they backlink to each other.
5. Walk me through creating a new GitHub repo and pushing to it with `npx quartz sync --no-pull`.
6. Tell me exactly what to click in Netlify to connect that repo (build command `npx quartz build`, publish directory `public`) and deploy.
Explain each step in one or two plain sentences as you go. Don't assume I know git.It’ll do the typing; you’ll do the clicking. Twenty minutes and you’re live.
The hard way (which is pretty easy too — it’s how I did it the first time)
If you’d rather understand each piece, do it by hand. The whole thing is seven steps.
1. Install and set up Quartz
Quartz needs Node v22+ and npm v10.9.2+. Once you have those, run these line by line:
git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz createThe last command walks you through initializing your garden with content. To see it live as you write, run npx quartz build --serve and open localhost:8080. The official getting-started guide has the full walkthrough.
2. Make it yours
Edit quartz.config.ts to set your site title, theme colours, and fonts. The one setting you shouldn’t skip is baseUrl — point it at your eventual domain (e.g. yourname.com), since search, RSS, and sitemaps all rely on it. See Configuration for everything you can tweak.
3. Write your first notes
Drop Markdown files into the content/ folder — one file per note. Don’t overthink it; a garden welcomes the half-formed, so a single line is a perfectly good start. I write mine in Obsidian pointed at the content/ folder, which makes linking and previewing effortless, but any text editor works. New notes appear live in your --serve preview the moment you save.
4. Link your notes together
This is the part that turns a pile of files into a garden. Wrap any note’s title in double brackets — [[What is a Digital Garden?]] — and Quartz renders it as a link. Better still, links here are bidirectional: the note you point to automatically grows a backlink pointing back at you, so related ideas find each other without you maintaining an index. Link generously, even across notes written years apart — that web of connections is the whole point.
5. Put it on GitHub
Create a new repo on GitHub — don’t initialize it with a README, license, or .gitignore (Quartz already has them). Copy the repo URL, then from your Quartz folder run these two commands, swapping REMOTE-URL for the URL you just copied:
git remote set-url origin REMOTE-URL
npx quartz sync --no-pullThe first points Quartz at your new repo; the second pushes everything up for the first time. From now on, npx quartz sync is all you need to publish new writing. Full details in Setting up your GitHub repository.
6. Connect Netlify
Netlify watches your repo and rebuilds the site every time you push.
- Click Add new site → connect your GitHub repo.
- Build command:
npx quartz build - Publish directory:
public - Hit Deploy.
A minute later you’ll have a live *.netlify.app URL. Every npx quartz sync from here on redeploys automatically.
7. (Optional) Point your own domain at it
A *.netlify.app URL works fine, but yourname.com feels like home. Buy a domain (Namecheap, Cloudflare, Google Domains — wherever), then in Netlify go to Domain management → add your custom domain and follow the DNS instructions. Remember to update baseUrl in your config to match.
That’s it. You now have a corner of the internet that’s entirely yours, that costs nothing, and that grows a little every time you have a thought worth keeping.