cube-oakley.com
This portfolio site — built with Astro and Tailwind CSS, containerized with Docker, and served from my homelab through Cloudflare Tunnels.
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.