Est.
MMIII

About · this site

A personal home base,
built in public.

pascalrhee.com is a small, quiet corner of the internet — a place for writing, projects, and whatever accumulates over the years. It's built one session at a time, in the open. Every commit, every plan file, and every journal entry lives next to the site's source in the sameGitHub repo.

If you care how it's built, the map is below. If not,go back to the front.

Architecture · build → deploy → serve

Architecture of pascalrhee.comAt build time, Astro compiles source files into a static dist folder, which wrangler uploads to a Cloudflare Worker. At runtime, the Worker receives every visitor request and either serves a static file from the assets binding, or routes /api/track and /api/views to a KV namespace that powers the view counter.BUILD TIMESRCsrc/pages/src/layouts/src/components/astro buildDIST/index.htmlabout/index.html/_astro/…wrangler deployEDGEpascalrhee-com Worker+ assets binding + KVRUNTIMEVISITORGET pascalrhee.com/*WORKER.fetchsrc/worker/index.tsPOST /api/track (+1)GET /api/views (sum 24)GET /* (everything else)VIEWS_KVkey: views:YYYY-MM-DDTHHvalue: count · 30h TTL · rolling 24henv.ASSETSserves dist/as static files— same artifact —
Two zones, one artifact. What Astro builds at compile time is what the Worker serves at runtime — the maize dashed line is that same folder crossing the boundary.

Stack · choices, in longer form

Astro
A content-site framework that compiles components and Markdown into static HTML at build time. Zero JavaScript by default; islands opt in only where interactivity is genuinely worth the bytes. Right shape for a site that's mostly writing, sometimes clever.
Cloudflare Workers with Assets
Serves the static site from Cloudflare's global edge, and lets a small piece of code — the view counter's API — live in the same artifact instead of a second service. One deploy, one thing to reason about.
wrangler
Cloudflare's CLI. One command bundles the Worker, uploads the built HTML, and ships it worldwide. Also creates the KV namespace and generates the TypeScript types that keep the Worker code honest.