A personal site should be a system, not a one-time design project.
The operating model is simple:
- Weekly steering: pick a small set of high-leverage changes.
- Agent execution: draft pages, update content, and open PRs.
- Guardrails: enforce typecheck, lint, build, and link integrity.
- Distribution: publish summaries to X and LinkedIn.
A concrete weekly cycle
- Monday: Pick 2-3 high-leverage changes from the backlog — a new writing piece, a project page update, a UI improvement.
- Tuesday-Wednesday: Agent drafts PRs. Each PR runs through the gate sequence automatically: typecheck, lint, build, link integrity.
- Thursday: Review and merge. The agent addresses PR feedback, fixes lint issues, and re-pushes.
- Friday: Distribute — extract social copy from the new content, cross-post to X and LinkedIn.
The human makes decisions. The agent executes. The gates enforce quality.
What the guardrails look like
bun run checkpasses on every PR — no exceptions- MDX frontmatter validates (title, summary, date, published, tags required)
- All internal links resolve — no broken references
- Images optimized and under 500KB
- Vercel preview deployment builds successfully before merge
A real example
PR #5 on this site: "improve all MDX content." The agent touched 14 files across writing and project pages — +97/-46 lines. Every file kept its frontmatter intact. The PR ran through typecheck, lint, and build gates automatically. No manual fixes needed. Merged the same day it was opened. That is one Tuesday's work with the engine running.
Why this works
- Throughput improves because execution is parallelized.
- Quality improves because acceptance criteria are explicit and automated.
- Momentum improves because publishing becomes repeatable — it's a process, not a burst of motivation.
Where to start
- define brand and content pillars in docs
- create templates for notes, essays, and projects
- codify runbooks so agent output stays consistent
Once this is in place, content velocity stops depending on mood and starts depending on process.