Skip to content

ddlaws0n/ddlawson.com

Repository files navigation

ddlawson.com

Deploy Astro Tailwind CSS Biome Cloudflare Pages Built with Claude Code

My personal site — writing, work, and projects. Live at ddlawson.com.

Quick start

pnpm install
pnpm dev          # localhost:4321

Scripts

Command What it does
pnpm dev Start the dev server
pnpm build Type-check and build for production
pnpm preview Preview the production build locally
pnpm lint Lint with Biome
pnpm fix Auto-fix lint issues
pnpm format Format files with Biome
pnpm types Run TypeScript in --noEmit mode
pnpm generate:og Regenerate Open Graph images

Stack

Deployment

Every push to main deploys to Cloudflare Pages via the deploy workflow. Pull requests run the validate workflow for type-checking and lint.

Required GitHub secrets

Secret Purpose
CF_API_TOKEN Cloudflare API token with Pages edit permission
CF_ACCOUNT_ID Cloudflare account ID
UMAMI_ID Umami analytics website ID (optional)

Staging

Staging deploys to ddlawson-staging.pages.dev and is gated behind Cloudflare Access — configure allowed identities in the Zero Trust dashboard.

Project layout

src/
├── assets/        # images, svgs, global styles
├── components/    # Astro components
├── content/       # blog posts, projects, work history (content collections)
├── layouts/       # page layouts
├── pages/         # routes
├── utils/         # helpers
├── content.config.ts
└── site.config.ts # site-wide config (name, SEO, analytics)
functions/         # Cloudflare Pages Functions
scripts/           # one-off build scripts (e.g. OG image generation)

License

Content (writing, images) © David D Lawson. Code is available for reference — feel free to take inspiration, but please don't clone the site wholesale.

About

Personal portfolio site — built with Astro & Tailwind

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors