This is the first post on my new personal site, built with Astro Nano. It’ll serve as a resume of sorts, and a place to share my thoughts on programming, design, and whatever else I’m interested in. It’ll also be a place to learn web development and create mini projects and live demos (in so far as I can with a static site).
Design Choices for the Site
Static Site Framework
I want to create a site that was fast, accessible, and SEO-friendly. To start, there is no requirement to serve dynamic content, so I can get away with a static site generator, like Next.js, Gatsby, or Astro. I also wanted to use a modern framework with good developer experience, and one that was built for performance.
Static Site Framework Trade Study
Astro
Pros:
- Zero JavaScript by default—HTML and CSS only
- Islands architecture: hydrate only interactive components
- Framework agnostic (React, Vue, Svelte, etc.)
- Built-in content collections with type safety
- Fastest for content-heavy sites
Cons:
- Smaller ecosystem
- Less suitable for highly interactive apps
- Newer, still evolving
Best For: Blogs, marketing sites, documentation, portfolios
Next.js
Pros:
- Industry standard with massive ecosystem
- Excellent DX with hot reload, TypeScript support
- Flexible rendering (SSG, SSR, ISR)
- Great for scaling from static to dynamic
- Vercel deployment is seamless
Cons:
- Ships more JavaScript than necessary for static sites
- React-only (framework lock-in)
- Requires more configuration for pure static sites
- Can feel like overkill for simple content sites
Best For: Apps that might need dynamic features, e-commerce, dashboards
Gatsby
Pros:
- Mature ecosystem with many plugins
- GraphQL data layer is powerful
- Good image optimization
- Strong PWA support
Cons:
- Slow build times on large sites
- GraphQL adds complexity for simple use cases
- Community momentum has shifted to Next.js/Astro
- Over-engineered for most static sites
- Heavy JavaScript bundle
Best For: Complex data sources, sites needing extensive plugins (legacy choice)
Decision: For a content-focused personal site, Astro was the clear winner:
- Performance first: Minimal JS means fast load times
- Content-native: Built-in content collections fit my blog/project structure
- Future flexibility: Can add React/Vue components if needed
- Learning opportunity: New framework with modern patterns
Next.js would make sense if I needed server-side rendering or planned to add dynamic features like user authentication. Gatsby’s complexity and build times didn’t justify its benefits for my use case; also it’s dead.
Fast, Not Flashy
Looking through https://astro.build/themes/ I was drawn to the minimalist themes that prioritized performance and content. I wanted the minimalism to be more than just skin deep - the code itself should be clean and efficient, without unnecessary dependencies or bloat. I (or an agent) can always add features as I go.
Decision: Astro Nano resonated with me the most. It’s built by Mark Horn, who has a great track record of creating high-quality, popular Astro themes like Astro Sphere.