Website Setup Documentation

The Potato Society Digital Garden Architecture

This document explains the complete setup of Muhammed Taufiq’s personal portfolio and digital garden hosted at potatosociety.uk.

🏗️ Architecture Overview

` Obsidian Vault: C:\VAULT\proxmox-vault\20 Projects\ProjectHome ├── Index.md ├── Hacking.md ├── AI_Engineering.md ├── Satellite_Operations.md ├── System_Architecture.md └── Website_Setup.md (this file)

Quartz Installation: C:\quartz-portfolio ├── quartz.config.yaml ├── package.json ├── node_modules/ └── content → [SYMLINK TO VAULT] `

The content folder in the Quartz installation is a directory junction (Windows symlink) pointing directly to your Obsidian vault. This means:

  1. ✅ Your Obsidian vault remains untouched and clean
  2. ✅ Quartz sees all your markdown files as if they were in its content folder
  3. ✅ Changes made in Obsidian immediately reflect on the website
  4. ✅ No duplication of files or manual copying required

⚙️ Technical Components

1. Quartz Static Site Generator

  • Framework: Quartz v5 (https://quartz.jzhao.xyz)
  • Hosting: Cloudflare Pages
  • Domain: potatosociety.uk
  • Build Command: px quartz build —no-serve
  • Output Directory: public/

2. Configuration File

  • Location: C:\quartz-portfolio\quartz.config.yaml
  • Format: YAML (required for Quartz v5)
  • Key Settings:
    • pageTitle: “The Potato Society”
    • aseUrl: “potatosociety.uk”
    • ignorePatterns: [“private”, “templates”, “.obsidian”]
    • Black-and-white minimalist theme configuration

3. Synchronization System

  • Local Script: sync.ps1 in Quartz directory
  • Workflow:
    1. git pull (get latest changes)
    2. git add . (stage all modifications)
    3. git commit -m “Sync: timestamp”
    4. git push (push to GitHub)
  • Automation: Cloudflare Pages auto-deploys on GitHub pushes

📁 File Structure

C:\quartz-portfolio\ ├─ quartz.config.yaml ← **Critical: YAML format required** ├─ sync.ps1 ← Synchronization script ├─ package.json └─ content/ ← SYMLINK to Obsidian vault ├─ Index.md ← Main hub ├─ Hacking.md ← Cybersecurity MOC ├─ AI_Engineering.md ← AI & automation MOC ├─ Satellite_Operations.md ← Satellite comms MOC ├─ System_Architecture.md ← Technical documentation └─ Website_Setup.md ← This document

🔄 Sync & Deployment Process

  1. Edit files in your Obsidian vault
  2. Run the sync script: cd C:\quartz-portfolio && .\sync.ps1
  3. The script handles:
    • Pulling latest changes from GitHub
    • Staging all file modifications
    • Committing with timestamp
    • Pushing to GitHub
  4. Cloudflare Pages automatically detects the push and rebuilds the site

Method B: Remote Updates via GitHub Web UI

  1. Go to: https://github.com/[your-username]/[repo-name]
  2. Navigate to the file you want to edit
  3. Click the pencil icon to edit
  4. Make your changes
  5. Scroll down and click “Commit changes”
  6. Add a commit message and confirm
  7. Cloudflare Pages automatically detects the push and rebuilds the site

🌐 Cloudflare Pages Configuration

Build Settings (Critical!)

  • Framework: None (Static site)
  • Build command: px quartz build —no-serve
  • Build output directory: public
  • Root directory: Leave completely BLANK/empty ⚠️

Custom Domain Setup

  1. In Cloudflare Pages dashboard → Settings → Custom domains
  2. Add potatosociety.uk (and optionally www.potatosociety.uk)
  3. Since domain is already on Cloudflare DNS:
    • Automatic DNS configuration
    • Automatic SSL certificate provisioning
  4. Enable:
    • “Always use HTTPS”
    • “Automatic HTTPS Rewrites”
    • “Deploy on every push to main branch”

🛠️ Maintenance & Troubleshooting

Regular Maintenance

  • Run .\sync.ps1 periodically to keep GitHub updated
  • Monitor Cloudflare Pages build logs for errors
  • Update Quartz version occasionally: pm update @jackyzha0/quartz

Common Issues & Solutions

”Site shows 404 or wrong content”

  1. Verify Cloudflare Pages build completed successfully
  2. Check build logs for Quartz errors
  3. Ensure quartz.config.yaml is valid YAML
  4. Confirm symlink is intact: dir C:\quartz-portfolio\content

”Changes not appearing on site”

  1. Run .\sync.ps1 to push local changes to GitHub
  2. Check GitHub repository for latest commit
  3. Verify Cloudflare Pages triggered a rebuild
  4. Clear browser cache (Ctrl+F5 / Cmd+Shift+R)

“Build fails in Cloudflare Pages”

  1. Test locally first: cd C:\quartz-portfolio && npx quartz build —no-serve
  2. Check for YAML syntax errors in quartz.config.yaml
  3. Verify all required plugins are present
  4. Ensure Node.js version is compatible (v18+ recommended)

📱 Access & Usage

  • Primary URL: https://potatosociety.uk
  • Local Preview: cd C:\quartz-portfolio && npx quartz watch
  • Source: GitHub repository at github.com/[your-username]/[repo-name]
  • Updates: Automatic via GitHub push → Cloudflare Pages rebuild

Last updated: 2026-09-04 Part of The Potato Society digital garden *Built with Quartz v5 • Hosted on Cloudflare Pages • Synced via GitHub