nbdevlab is Nathan Bullock's living lab notebook for experiments across Astro, Cloudflare Pages, and a growing catalogue of homelab projects. The site documents active builds, publishes deep-dive write ups, and tracks the infrastructure that powers nbdevlab.com.
- Living lab notebook – project logs and field notes captured as Markdown content collections.
- Status + telemetry – lightweight dashboards surface uptime snapshots and current areas of focus.
- Hand-crafted UI – Tailwind CSS, shadcn/ui, and custom theming create a cohesive dark interface without starter template clutter.
- Exploring OpenAI's Codex – documenting how OpenAI's Codex helps prototype automations and accelerate experiment cycles.
- Astro for static-first site generation with islands of interactivity.
- Cloudflare Pages for globally distributed static hosting.
- Tailwind CSS and shadcn/ui for component styling.
- Decap CMS for authenticated content editing via GitHub OAuth.
- Install dependencies
npm install
- Start the dev server
The site becomes available at the address printed in the terminal.
npm run dev
- Generate content types (optional)
Syncs content collections defined in
npm run sync
src/content/config.ts.
Cloudflare Pages handles all deployments. Configure the project with:
- Build command:
npm run build - Build output directory:
dist - Deploy command (production & preview): leave blank so Pages automatically uploads
dist/
Every non-main branch build produces a Preview URL. The main branch is the only branch mapped to https://www.nbdevlab.com and https://nbdevlab.com.
This repository represents personal work. Please reach out before reusing significant portions of the design or content.