How this site runs
Agent → commit → preview → approval → live
This site is a proof-of-build. The content lives in a git repo. An autonomous agent on the DGX Spark drafts markdown, commits to a branch, and opens a pull request. Vercel deploys a preview. I review and merge from my phone. No CMS, no WYSIWYG — just git and markdown.
Pipeline
┌─────────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐
│ DGX Spark │────►│ Git PR │────►│ Vercel │────►│ Review │
│ (agent) │ │ (draft) │ │ preview │ │ & merge │
└─────────────┘ └──────────┘ └─────────┘ └──────────┘
│ │
│ ┌──────────┐ │
└─────────────►│ /lab │◄─────────────────────────┘
│ telemetry│
└──────────┘Components
- DGX Spark — runs the publishing agent and local LLM for drafting
- Git repo — Astro site, markdown content collections, this is the CMS
- Vercel — static site generation + serverless API for lab status proxy
- Tailscale — DGX is never exposed to the public internet; Vercel polls via secure tunnel
Lab status API
The live widget on the homepage and /lab pulls from/api/lab-status, a serverless function that proxies a status endpoint on the DGX Spark. Set LAB_STATUS_URL in Vercel environment variables to point at your Tailscale-proxied endpoint.
Transparency choices
Posts carry a byline — Niran — not an AI/human split. The pipeline story lives here and on the changelog, for readers who opt in. Authorship metadata exists in frontmatter for my own records but isn't rendered on posts.
Changelog
The build log shows curated commit history — what the pipeline actually shipped. Filtered for signal, not noise.