Portfolio MMXXVI

Kaine

Building at the intersection of code and culture.

A portfolio that
deploys itself.

Tag a GitHub repository portfolio and it gets picked up, built, and deployed automatically — no manual steps required.

Access is tiered: some projects are public, others require signing in. Specific projects can also be shared directly with individuals regardless of their tier.

Everything runs on a Synology NAS and Cloudflare — Pages builds and serves the site, a Tunnel exposes the backend. Costs stay near zero while the stack remains fully self-hosted.

System
Architecture

Build pipeline Runtime request Cloudflare Tunnel
GITHUB projects · tagged "portfolio" SYNOLOGY NAS builds · hosts PocketBase · Docker CLOUDFLARE EDGE Pages · Workers · Astro SSR kaine.at VISITOR HTTP · cookie auth POCKETBASE api.kaine.at · users, tiers, projects
origin api.kaine.at
status connecting…
latency — ms
last beat

The diagram above is live — each pulse is a real ping to the NAS,
tunnelled through Cloudflare, answered by PocketBase.

Tech
Stack

01 Astro
SSR Framework v5, Cloudflare adapter
+

Modern web framework built around the concept of islands architecture — renders HTML server-side and ships zero JavaScript by default. This site uses Astro 5 with the Cloudflare SSR adapter, rendering per request on Workers with cookie-based auth.
docs.astro.build →

02 PocketBase
Database & Auth Self-hosted on NAS
+

Open-source backend packaged as a single Go binary. Provides a SQLite-backed database, real-time subscriptions, built-in authentication, and an admin dashboard — all self-hosted on a Synology NAS, exposed through a Cloudflare Tunnel.
pocketbase.io/docs →

03 Cloudflare Pages
Hosting & CI/CD Workers runtime, auto-deploy
+

Cloudflare's git-integrated hosting platform. Builds and deploys on every push to the portfolio repository, handles automatic HTTPS, and runs Astro's SSR on the Workers runtime at the edge for low-latency per-user rendering.
developers.cloudflare.com/pages →

04 Cloudflare Tunnel
NAS Exposure & DNS Zero-trust, outbound-only
+

Network infrastructure and security platform. The Tunnel feature creates an outbound-only encrypted connection from the NAS to Cloudflare's edge, making PocketBase reachable at api.kaine.at without opening any firewall ports.
developers.cloudflare.com →

05 GSAP
Animations ScrollTrigger, timelines
+

Professional-grade JavaScript animation library with a minimal footprint. Used throughout this page for the hero entrance timeline, scroll-triggered stagger reveals on architecture rows, and the smooth stack row animations on load.
gsap.com/docs →

06 GitHub API
Live Metadata Stars, forks, topics
+

REST API for accessing repository data. Used server-side at request time to fetch live star counts, fork numbers, language breakdowns, and the "portfolio" topic tag that triggers automatic inclusion of a repo in this site.
docs.github.com/rest →