The equations of state and analysis scripts on this site are written in Python. The site uses Brython, which translates Python 3 code to JavaScript so it can run in the browser and also provides the standard Python libraries. Accordingly, all of the scripting is done in the browser rather than the server — the server need only deliver static files.
Libraries using native code (like NumPy) are unavailable, but the site only needs scalar math, so this is not an issue. However, expensive computations (like constructing a full coexistence curve) had to be broken up into small pieces of work (a function to find a single coexistence point) and use a Brython event loop to call the coexistence function repeatedly, returning control to the browser after each call. Computing the third virial coefficient (B3) on the fly is particularly intensive and too slow via Brython (10-20 seconds). Accordingly, the site uses a WebAssembly version of B3 written in C and built with emscripten.
Please report bugs, errors, suggestions to Andrew Schultz at ajs42@buffalo.edu.