Web

cube-oakley.com

This portfolio site — built with Astro and Tailwind CSS, containerized with Docker, and served from my homelab through Cloudflare Tunnels.

#astro #tailwind #docker #cloudflare

About This Project

You’re looking at it. This site is a portfolio and blog built from scratch using modern web tools, designed to be fast, minimal, and easy to maintain.

Tech Stack

  • Astro — static site generator with content collections
  • Tailwind CSS v4 — utility-first styling
  • Docker + Nginx — containerized static file serving
  • Cloudflare Tunnels — zero-trust access to my homelab

Design Decisions

Why Static?

A static site has no attack surface beyond the web server itself. No database to breach, no admin panel to brute-force. For a portfolio and blog, dynamic rendering is unnecessary overhead.

Why Astro?

Astro outputs pure HTML with zero client-side JavaScript by default. Pages load instantly. When I need interactivity, I can add it selectively with “islands” — isolated components that hydrate independently.

Why Not Open Ports?

Cloudflare Tunnels create an outbound-only connection from my server to Cloudflare’s edge network. My home IP stays hidden, and there are no listening ports for attackers to scan.

Source

The source for this site will be available on GitHub.