The Stack
What this site is actually built with, updated whenever that changes — not a dated snapshot.
Core site
- AstroStatic site framework — the whole site
- TypeScriptContent Collections schemas, data files
- Tailwind CSS v4Styling
- Vanilla JavaScriptTheme toggle, mobile nav, node-network background, scroll-hide header, contact form, and all of the Bell Ringer/comments/accounts client-side logic — no framework or library
- ZodSchema validation for content collections and defensive CMS-input normalization
Content & blog
- Astro Content CollectionsData layer for blog posts, Bell Ringer questions, and project/tool cards
- Sveltia CMSBrowser-based, git-backed admin panel for writing posts and managing cards
- MarkdownContent format
- @astrojs/rssPowers the blog and Bell Ringer RSS feeds
Share preview images
- SatoriRenders each blog post/Bell Ringer's unique OG image as SVG at build time
- sharpRasterizes those SVGs to PNG
- gray-matterReads post frontmatter directly for the image-generation script
Bell Ringer, comments & accounts (backend)
- Cloudflare WorkersThe bellringer-api Worker: vote tallies, comments, and the whole accounts system
- Cloudflare D1SQLite-compatible serverless database (users, sessions, comments, votes, rate limits)
- WebCrypto (PBKDF2-SHA256)Password hashing, no external dependency needed
- ResendTransactional email for verification links and password resets
- GitHub OAuthReused (via a second Worker) to gate the comment moderation tool to one account
Backend-less services
- Web3FormsContact form submission handling
- Cloudflare Web AnalyticsPageview tracking
Hosting & deployment
- GitHubVersion control across the site, the Bell Ringer API, and the CMS auth proxy repos
- HostingerStatic hosting with Git-based auto-deploy on every push, plus DNS
- CloudflareWorkers runtime, D1, and a few DNS records for email deliverability
CLI/dev tooling
- npm / Node.jsPackage management and scripting
- Homebrew, gh, wrangler, pandocLocal CLI tooling for GitHub, Cloudflare, and document conversion
How it's actually built
- Claude CodeThe whole thing, site and backend both, built through pair-programming sessions with Claude