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
| Approach | Tradeoff |
|---|---|
| Handwritten HTML and CSS | Direct control with few dependencies, but shared layouts become repetitive. |
| Astro with static output | Reusable templates and content-focused pages, with a build step and framework dependency. |
| Next.js with a CMS | More application and publishing capabilities, with additional operational complexity. |
| Visual website builder | A 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 can be added individually when they serve a clear purpose.
The goal is to choose infrastructure proportional to the problem. More complex deployment patterns belong in projects where they have a useful role.