This is the site you're currently viewing! It's a static Single-Page Application (SPA) that uses the Vue.js ecosystem. I'm using something Vue-based because I find it easier to write. For example, I don't have to worry about using className instead of class and .vue component/page files let you use a <template> tag to enclose your DOM elements.

The back-end is a Node.js application using the Nuxt.js framework (similar to React's Next.js) that compiles pages and components to a bunch of JavaScript. The front-end is written using Buefy, a Vue implementation of Bulma. Carousel sliders are via vue-awesome-swiper, a Vue implementation of swiper. Google's document viewer is used for PDF files. The compiled site is behind Cloudflare and pushed to GitHub Pages. This lets me use a custom domain while still being able to use that domain cleanly for other things, and still having some ability to track analytics. Additionally, it's static hosting and I don't need to worry about keeping Node applications running.