Yes, this is a bit of a loop: this is the project page for the site you're currently reading.
Built with Express and EJS for local development, then pre-rendered at build time into plain static HTML and deployed to GitHub Pages via GitHub Actions on every push to main. Light/dark theme, a self-hosted font, and this very blog/projects system are all part of it.