Cloudflare Pages Doc Site — Setup Spec¶
Goal: Auto-syncing, mobile-friendly documentation site so Jeff can read rendered workspace docs from anywhere (iPhone, iPad, hotel wifi, cellular).
Design Principle: Site structure mirrors local directory structure. Same names, same hierarchy. No reorganization.
Stack¶
- MkDocs + Material theme — static site generator, best-in-class markdown rendering
- mkdocs-awesome-pages plugin — auto-generates nav from directory tree (no manual config)
- Wrangler CLI — Cloudflare's deploy tool
- fswatch + cron — auto-detect changes, rebuild + deploy
Cost¶
- $0/month — Cloudflare Pages free tier (500 builds/month, unlimited bandwidth)
- $0/month — Cloudflare Access free tier (up to 50 users, email-based auth)
Setup Steps¶
Jeff's Part (one-time, ~10 minutes)¶
- Create Cloudflare account
- Go to https://dash.cloudflare.com/sign-up
- Use business email (ops@viverevitalis.com or personal — your call)
-
Free plan is all we need
-
Create an API token for Jules
- Dashboard → My Profile → API Tokens → Create Token
- Use template: "Edit Cloudflare Pages"
- Scope: Account-level, Pages only
-
Copy the token and send it to Jules (Signal or Telegram DM, not group chat)
-
Optional: Set up Cloudflare Access
- Zero Trust → Access → Applications → Add Application
- Self-hosted, protect the Pages URL
- Policy: Allow emails matching yours (one-time click-through auth via email code)
- This keeps docs private — only you can view them
Jules's Part (automated after token received)¶
-
Install local tooling
-
Configure Wrangler auth
- Store API token in
~/.wrangler/config.tomlor env var -
Verify with
wrangler pages project list -
Create MkDocs project
mkdocs.ymlat workspace root with Material theme config- Configure
docs_dirpointing to publishable content - Auto-nav from directory structure via awesome-pages plugin
-
Exclude patterns:
memory/,MEMORY.md,HEARTBEAT.md,*.secret, etc. -
Create Cloudflare Pages project
-
Build + deploy script (
scripts/deploy-docs.sh) -
Auto-sync daemon (launchd plist)
- fswatch monitors publishable directories
- On change: debounce 10s → run deploy script
-
Cron backup: rebuild + deploy every 30 minutes as safety net
-
Test + verify
- Deploy initial site
- Verify on iPhone/iPad via cellular
- Confirm directory tree matches local structure
- Confirm auth works (if Cloudflare Access enabled)
What Gets Published¶
Included:
- initiatives/ — briefs, specs, research, status docs
- research/ — standalone research docs
- specs/ — this file and other specs
- skills/ — skill documentation (public-safe parts)
- Any future docs/ directory content
Excluded (never published):
- memory/ — daily logs, heartbeat state
- MEMORY.md — long-term memory (private)
- USER.md — personal info
- HEARTBEAT.md — internal ops
- *.env, *.secret, credentials
- SOUL.md, IDENTITY.md — internal agent config
- AGENTS.md — operational playbook
End Result¶
- URL:
vv-docs.pages.dev(or custom domain later) - Mobile: Bookmark on iPhone/iPad, works on any connection
- Features: Search, sidebar nav, dark mode, responsive layout
- Sync: ~30 seconds from local edit → live on site
- Maintenance: Zero — fully automated after setup
Timeline¶
- Jeff's part: 10 minutes whenever convenient
- Jules's part: ~1 hour after receiving API token
- Total: live same day