The first edition of the book of names was completed in 1995. It uses CGI and server-side Perl scripts and accomplishes quite a lot with clever data dictionaries.
The old version allowed you to generate names for fantasy characters with these "racial" backgrounds: Human, Northern male, Northern female, Central, Southern, Mideastern, Eastern, Western, Metropolitan, Elf, Translated elven, Eldar elven, Goblin, Dwarven, Hobbit, Baggins hobbit, Gamgee hobbit, Took hobbit, and Buckland hobbit. It also supported names for these places: Woodland area, Shire, Village, Coastal town, Lowland town, Lowland city, Highland city, Highland stronghold, Minor city, English countryside, Old world, Nordic town, Incan city, Japanese city, and Greek town.
You can still [try it here].
This second edition has had three phases of development. First a much more complex system of models and application of those models. The original edition relied on clever phonic bridging. This system will use that but combines it with Markov chains at character and word levels, and constructs. Second a more modern development approach using Python, Javascript, MySQL, RESTful APIs, caching, query args, and CSS. Third, new data dictionaries and a schema which supports automation across all the data sets. This means that the data dictionary does not necessarily define the model. Different formulas can be applied to the same data set to achieve different results.
The HTML pages are flat but can also accept overriding query arguments. These can also prime the pump and provide results on the first click. These are a similar subset of query args which are accepted by the API.