Rebuilding bahuckel.com on Astro and Cloudflare Pages
Why the old site died with its server, and what the new hub is built from.
The first bahuckel.com was a passenger inside the Electron monorepo. It had one HTML file, a tab switcher, and a support form that posted to a Node server running on the same box as the chat app. When that server was retired, the site went with it: the build scripts copied files from folders that no longer existed, and the form had nowhere to send anything.
What replaced it
The new site is a static Astro build deployed to Cloudflare Pages. No server, no runtime, no cost.
- One folder per project. Each project is a Markdown file with typed frontmatter and its screenshots beside it. Adding a project means adding a folder.
- Images resized at build time. The four 3440-pixel screenshots from the old gallery now ship as AVIF and WebP variants between 2 and 82 kB.
- Neon on a dial. Off, subtle, or full. The choice is stored in your browser and applied before the first paint, so there is no flash.
- Zero third-party requests. Fonts are self-hosted. There is no analytics script unless you count the cookie-free Cloudflare beacon, and even that is optional.
What is next
A command palette for jumping between projects, generated social cards for every page, and a contact form that submits without opening your mail client. After that, live GitHub stats and a status board for the services that are meant to be public.