The requirements

This site needs to communicate my experience, explain technical projects, and support a growing collection of engineering writing. It should be distinctive, accessible, straightforward to maintain, and inexpensive to operate.

The alternatives

ApproachTradeoff
Handwritten HTML and CSSDirect control with few dependencies, but shared layouts become repetitive.
Astro with static outputReusable templates and content-focused pages, with a build step and framework dependency.
Next.js with a CMSMore application and publishing capabilities, with additional operational complexity.
Visual website builderA convenient visual workflow, with greater dependence on the platform.

The decision

Use Astro to generate static pages, custom HTML and CSS for the presentation, and shared layouts for navigation and typography. The initial version requires no application database or visitor authentication.

Cloudflare static hosting is the intended production destination. The website’s source and generated output remain portable, allowing deployment to another static host if requirements change.

The consequences

Content changes currently happen in source files and require a new build. In return, the deployed site has a small runtime footprint. A browser-based CMS can be reconsidered if publishing needs grow; interactive features are added individually when they explain the work. The release explorer uses native disclosure controls. The operations walkthrough uses a small browser module, with all content available when JavaScript is off.

The goal is to choose infrastructure proportional to the problem. More complex deployment patterns belong in projects where they have a useful role.