This site is compiled using custom scripts and tools written in Typescript.
Fun hacks
Pandoc and Markdown do not leave much wiggle-room for interesting content like my gallery, interactive tables, and diagrams. These are all handled by using scripts that run on load.
The “Stack”
This website is compiled using a build script written in Typescript. This script uses ESBuild to compile SCSS & TS into web-friendly bundles, and Pandoc for compiling markdown into HTML.
Why Typescript?
Using typescript for both the compiler itself & the web-related scripts allows compile-time checking & general safety which JS lacks out of the box. Simple things like optional chaining make dealing with the DOM less of a headache.
Why SCSS?
I find SCSS much easier to maintain in larger bundles, splitting things out into mixins, using imports etc. Taking advantage of browserslist & can-i-use at compile time can also take out the stress of ensuring near-100% browser coverage