Site Nuts and Bolts
When I started this site, I considered writing the pages directly in HTML and CSS. I wanted a consistent layout without repeating the same code on every page, so I chose a static site generator.
I had used Hugo before, but adapting an existing theme was more complicated than I wanted. I chose Zola, which turns Markdown text and shared page templates into finished web pages. It also compiles the style sheets, so I can build the site with a single executable. I wrote the theme myself to keep the design simple and understand how it works.
Netlify hosts the site. It saves me from maintaining a web server and gives me more time for the content and tools. I keep the source files on GitHub. Netlify is configured to build and publish the site automatically when I push updates to the publishing branch.
The pages are built in advance, which is what makes the site static. The interactive tools run their calculations in your browser. They still download program files and spectral data from the site as needed. The contact form is handled separately by Netlify.
JavaScript handles the controls and charts. The color calculations use my colorimetry library, compiled to WebAssembly.