This site is its own project. It runs on an ExtraVM VPS in Dallas, TX — the same box that hosts TrenchWatch. There is no cloud build pipeline, no Vercel, no Netlify. The build happens on the VPS itself, the dist folder gets atomically symlinked into place, and nginx serves it directly.
@fontsource/jetbrains-mono, no Google FontsContent changes are a three-step pattern:
# edit a markdown file in src/content/
git add . && git commit -m "update content"
./deploy.sh
deploy.sh runs npm run build, moves the dist to a timestamped release directory, and atomically swaps the symlink at /srv/portfolio/current. Nginx doesn’t restart — it just starts serving the new files.
The VPS status block at the bottom of the home page fetches /status.json every 60 seconds — written by a cron job running every minute on the box itself. If the timestamp is updating, the server is alive.