ANTHONY GUZMAN
● OPEN TO WORK
AG
//
← Back to projects
04SHIPPED

This Portfolio

Ship the work, not the resume.

WEBINFRA
§ OVERVIEW

Personal portfolio site built with Next.js, self-hosted on Proxmox behind a Cloudflare Tunnel. Cursor-tracked spotlight, animated topology diagram, zero third-party analytics.

§ STACK
Next.js 16
App Router, server components, API routes
TypeScript
Full type coverage, strict mode
Tailwind CSS v4
CSS-first config via @theme block
Framer Motion
Scroll-reveal animations, hero entrance
Proxmox LXC
Self-hosted runtime in an unprivileged container
Cloudflare Tunnel
Zero-trust delivery — no exposed ports
§ DECISIONS
01
Self-hosted over Vercel

Vercel is the obvious choice for Next.js, but I run everything on my homelab. Self-hosting means I control the deployment pipeline, the logs, and the infrastructure — and I get to practice ops on something I actually care about.

02
No analytics

Google Analytics, Plausible, Fathom — all of them add a third-party script and a data obligation. A portfolio doesn't need conversion funnels. The only signal I care about is whether I get the job.

03
Content drives layout

V1 of this site was 90% scaffolding and 10% me. V2 started from one question: what does a recruiter need to know in 30 seconds? The design decisions followed from the answer, not the other way around.

§ WHAT'S NEXT
  • Add project detail pages for deeper write-ups
  • Integrate the /api/health endpoint with Uptime Kuma monitoring
  • Set up GitHub Actions → webhook → PM2 restart CI/CD
  • MDX blog for security writeups and CTF retrospectives