Digital Garden Setup Guide

Audience

This guide is for anyone wanting to publish a digital garden from their personal knowledge management system. Assumes basic computer literacy but explains technical concepts.

Decision Tree: Choose Your Path

Before starting, consider your technical comfort level and goals:

Path A: Easiest (Obsidian → Digital Garden Plugin)

Best for:

Time investment: 30-60 minutes
Technical level: Beginner

Path B: Powerful (Obsidian → Quartz)

Best for:

Time investment: 2-3 hours first time
Technical level: Intermediate

Path C: Maximum Control (Jekyll / Hugo)

Best for:

Time investment: 4-8 hours first time
Technical level: Advanced

Path D: Federation-First (WriteFreely)

Best for:

Time investment: 1-2 hours
Technical level: Beginner-Intermediate


Path A: Obsidian + Digital Garden Plugin

Prerequisites

What you need:

No coding knowledge required.

Step-by-Step Setup

1. Install Digital Garden Plugin

In Obsidian:

  1. Open Settings → Community Plugins
  2. Disable Safe Mode if prompted
  3. Browse Community Plugins
  4. Search "Digital Garden"
  5. Install and Enable

2. Run Setup Wizard

The plugin includes guided setup:

  1. Click plugin settings
  2. Click "Open Setup Wizard"
  3. Follow prompts to:
    • Create GitHub repository
    • Connect to Vercel
    • Set up deployment

Wizard handles:

3. Configure Publishing Settings

In plugin settings:

Repository:

Site settings:

Appearance:

4. Publish Your First Note

In any note:

  1. Add to frontmatter: dg-publish: true
  2. Open command palette (Cmd/Ctrl + P)
  3. Run "Digital Garden: Publish Single Note"
  4. Wait for deployment (30-60 seconds)
  5. Visit your site URL

Example frontmatter:

---
dg-publish: true
---

5. Set Up Homepage

Create index.md or home.md:

Example:

---
dg-publish: true
dg-home: true
---

# Welcome to My Digital Garden

This is a collection of my thoughts, notes, and ideas.

## Start Here
- [[About Me]]
- [[Now]]
- [[My Interests]]

Advanced Features

Custom Domain

In plugin settings:

  1. Enter your domain name
  2. Follow instructions to configure DNS
  3. Point CNAME record to Vercel

DNS example:

Type: CNAME
Name: garden (or @)
Value: cname.vercel-dns.com

Custom Styling

Create styles.css in vault:

/* Custom styles go here */
body {
  font-family: your-preferred-font;
}

In plugin settings:

Graph View Configuration

Enable in plugin settings:

Troubleshooting

Note won't publish:

Site not updating:

Links broken:

Maintenance

Daily:

Weekly:

Monthly:


Path B: Obsidian + Quartz

Prerequisites

What you need:

Step-by-Step Setup

1. Install Quartz

Open terminal:

git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create

Follow prompts:

2. Configure Quartz

Edit quartz.config.ts:

const config: QuartzConfig = {
  configuration: {
    pageTitle: "Your Garden Name",
    enableSPA: true,
    enablePopovers: true,
    baseUrl: "yourdomain.com",
    // ... other settings
  },
}

Key settings to customize:

3. Preview Locally

Run development server:

npx quartz build --serve

Open browser: http://localhost:8080

Test:

4. Filter Published Content

Option A: Separate folder
Create /content folder for published notes only.

Option B: Metadata filtering
Configure Quartz to only build notes with publish: true.

Edit quartz.config.ts:

plugins: {
  filters: [Plugin.RemoveDrafts()],
  // Only publishes notes without draft: true
}

5. Deploy to Hosting

GitHub Pages (free):

npx quartz sync
# Pushes to GitHub
# Enable GitHub Pages in repo settings

Netlify (free):

  1. Connect GitHub repo
  2. Build command: npx quartz build
  3. Publish directory: public

Vercel (free):

  1. Import GitHub repo
  2. Framework preset: Other
  3. Build command: npx quartz build
  4. Output directory: public

6. Automation

Auto-deploy on commit:

GitHub Action example:

name: Deploy Quartz
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
      - run: npm i
      - run: npx quartz build
      - uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

Customization

Styling

Edit quartz/styles/custom.scss:

// Your custom styles
body {
  font-family: "Your Font", sans-serif;
}

// Customize colors
:root {
  --primary-color: #your-color;
}

Layout

Edit quartz.layout.ts:

export const layout: PageLayout = {
  beforeBody: [
    Component.Breadcrumbs(),
    Component.ArticleTitle(),
  ],
  left: [
    Component.PageTitle(),
    Component.Search(),
    Component.Darkmode(),
  ],
  right: [
    Component.Graph(),
    Component.TableOfContents(),
    Component.Backlinks(),
  ],
}

Plugins

Enable/disable features:

plugins: {
  transformers: [
    Plugin.FrontMatter(),
    Plugin.CreatedModifiedDate(),
    Plugin.SyntaxHighlighting(),
    Plugin.ObsidianFlavoredMarkdown(),
    Plugin.GitHubFlavoredMarkdown(),
    Plugin.TableOfContents(),
  ],
}

Troubleshooting

Build errors:

Links not working:

Graph not showing:


Path C: Jekyll / Hugo

Jekyll (Ruby-based)

Prerequisites:

Quick start:

gem install jekyll bundler
jekyll new my-garden
cd my-garden
bundle exec jekyll serve

Garden themes:

Deploy: GitHub Pages (native support)

Hugo (Go-based)

Prerequisites:

Quick start:

hugo new site my-garden
cd my-garden
git submodule add [theme-repo] themes/[theme-name]
hugo server

Garden themes:

Deploy: Netlify, Vercel, or GitHub Pages

Configuration

Both require more manual setup than Quartz or Digital Garden plugin. See respective documentation for details.


Path D: WriteFreely (Federation-First)

Quickest ActivityPub presence:

  1. Sign up at write.as
  2. Start writing posts
  3. Your blog is automatically federated
  4. Others can follow from Mastodon

Pros:

Cons:

Self-Hosted WriteFreely

Requirements:

Setup: Follow WriteFreely documentation

Benefits:


Post-Setup: Essential Configuration

RSS Feeds

Ensure enabled:

Promote your RSS:

Webmentions (Optional)

Add cross-site comments:

  1. Sign up at webmention.io
  2. Add verification links to site
  3. Add webmention endpoint to HTML:
<link rel="webmention" href="https://webmention.io/yourdomain/webmention" />
  1. Display received webmentions

Services:

Analytics (Optional)

Privacy-respecting options:

Avoid: Google Analytics (privacy concerns, overkill)

Search Functionality

Most gardens include:

Ensure enabled in your chosen tool.


Publishing Workflow

Deciding What to Publish

Publish when note is:

Don't wait for perfection.

Gradual Disclosure

Maturity levels:

Use status tags:

---
status: 🌲_evergreen
dg-publish: true
---

Update Existing Notes

Gardens are living:

Every note should link to:

Both directions:


Maintenance and Growth

Daily Habits

Sustainable practices:

Weekly Review

Garden tending:

Monthly Reflection

Assess health:


Common Pitfalls

Perfectionism

Problem: Waiting for notes to be "done"
Solution: Publish seeds, let them grow publicly

Over-organization

Problem: Spending more time organizing than writing
Solution: Let structure emerge organically

Publication pressure

Problem: Feeling obligated to publish regularly
Solution: Gardens grow at their own pace

Comparison

Problem: Comparing your garden to polished examples
Solution: Your garden is unique, embrace it


Advanced Topics

Custom Domains

Most hosting services support:

  1. Buy domain (Namecheap, Google Domains, etc.)
  2. Configure DNS
  3. Point to hosting service
  4. Enable HTTPS (usually automatic)

Backups

Essential practice:

Collaboration

Enable contributions:

Migration

Moving hosts:


Resources and Community

Documentation

Tools:

Communities

Ask questions:

Inspiration

Gardens to explore:


Getting Help

When stuck:

  1. Check tool documentation first
  2. Search community forums
  3. Ask specific questions (include error messages)
  4. Share your setup details

Most helpful information:


Next Steps

After setup complete:

  1. Write 3-5 initial notes
  2. Publish them
  3. Share with one friend
  4. Get feedback
  5. Iterate and improve

Then:



🪴 This note will continue to grow...

Last tended: 2025-11-04

Questions about setup? Ask in the Obsidian Discord or reach out to gardeners you admire.