The third version of the site used a custom Perl web application server which communicated via Fast CGI with an Apache web server.

Fast CGI (FCGI) is a protocol for running stand-alone processes to handle page requests which are taken from (and responded to) the main web server.  Each CGI process runs continuously, handling a series of server requests, so the load and startup times are no longer an issue.  Some servers support FCGI directly and those that don't can be modified via in-process modules or a small and fast CGI executable.

In addition, we deployed this version on *NIX: first Red Hat Linux and then Solaris.  In both cases we used the Apache web server which allowed us to use mod_rewrite to convert URLs on our site to calls to the FCGI script.  This happens in a completely transparent manner, and the combination of mod_rewrite and FCGI is extremely powerful.

The conversion system was custom-written in Perl.  The system supported a series of overlay files that were merged together in a manner that reminded us of macro expansion.  The specific page files could be absolutely unmodified plain HTML, yet they were eventually delivered wrapped in headers, footers, and so forth.  In addition, we provided a dynamic object strategy that (a) did not require inline scripting in the HTML files and (b) stored all executable code outside of the HTML directory (where it could not be hacked easily).

The system worked just as we intended but was not very fast.  We conceived of several caching schemes, but never found the heart to implement any of them for a variety of reasons.

This software ran from the summer of 2001 until the summer of 2002.