How this site is built and published: Obsidian + Git + Quartz + Vercel.

The structure

[ Obsidian vault ] ──(Obsidian Git / Termux)──> [ GitHub repo ] ──(webhook)──> [ Vercel ] ──> visibles.info
       │                                                                          │
   I write notes                                              npm run build:
   in markdown                                                1. scripts/gen-dashboards.mjs (counts)
                                                              2. npx quartz build (the site)
  • The vault is a normal folder of markdown files, edited with Obsidian on PC and mobile. Only the content/ folder is published; everything else in the vault stays private (Quartz’s contentDir setting in quartz.config.ts guarantees it).
  • Inside content/, folders are note types: Dots, Sources, PJ, Expressions, Preguntes, Places, Receptes, HowTo and Workshop (status pages and the tag registries: Sources, Places, Topics). Notes with draft: true in their frontmatter exist in the vault but are never built into the site.
  • Git syncs everything: the Obsidian Git plugin commits and pushes automatically (on Android, Termux handles the occasional conflict). Authentication uses a GitHub Personal Access Token:
https://tu_usuario:TU_TOKEN_AQUÍ@github.com/octarina8/WWtGDO.git
  • Quartz v4 converts the markdown into the static website: wikilinks, graph, search, tag pages, folder pages. Configuration lives in quartz.config.ts.
  • Vercel watches the GitHub repo and rebuilds the site on every push.
  • The dashboards in Workshop are generated by scripts/gen-dashboards.mjs: a small Node script that counts notes and tags (no AI, no manual numbers) and rewrites the dashboard pages before each build.
  • Analytics: GoatCounter plus Vercel Web Analytics (a plain script tag pointing at /_vercel/insights/script.js, added in quartz/components/renderPage.tsx; enabled from the project’s Analytics tab in Vercel).
  • The maintenance system (how notes get written) is a different story: Karpathy Method adapted to WWtGDO.

How to set the build command in Vercel

So the dashboards regenerate on every deploy, Vercel must run npm run build instead of plain npx quartz build:

  1. Go to vercel.com and log in.
  2. Open the project (the one deploying this repo).
  3. SettingsBuild and Deployment (in some layouts, “Build & Development Settings”).
  4. In Build Command, switch on Override and type: npm run build
  5. Save.
  6. It applies to the next deploy: push any change, or go to Deployments → latest → the ”…” menu → Redeploy.

To check it worked: open the deploy’s build log and look for the line gen-dashboards: N notes scanned, 4 dashboards written. before the Quartz output.