Uttu::Manual::Intro module contains an introduction to Uttu.
Uttu provides a web-site driver that, together with a suitable framework, makes creating an interactive web-site easy and painless. Uttu provides support for internationalization, URI mapping, configuration as well as HTML::Mason as one of the content providers.
Unlike Venus, Uttu did not spring fully-formed from anyone's head. The design is based on several different applications, mainly TWIG and, as it took form, MudOS and the LPC environment.
Initially, it was a simple rewrite of our web-based administrative interface from PHP into Perl. PHP had proven too limiting for us. We were much more experienced in Perl and were making simple mistakes in PHP that lead to security holes. For example, instead of comparing two strings with ==, we had to move to using strcmp since some of our strings began with numbers. PHP also had poor support for object oriented programming, which is making our life much easier in Perl.
We chose HTML::Mason because it offered separation of logic from presentation, though not perfectly. It also gave us components and per-component caching. When we are serving a community of 70,000 customers, this allows for greater scalability.
After doing some initial coding and seeing where the project was headed, we decided to develop a core module that could act as a coordinator, or driver (in LPC terminology). Around this would be built a framework with Mason and auxiliary code that would correspond to the mudlib of an LPC-based Mud. Again, this seemed best at the time since it allowed for greater flexibility. Uttu itself does not dictate a look or feel for an application. It just coordinates the various pieces.
Just as a mud has rooms and objects and players, so an Uttu-based site would have modules, or sets of functionalities that could be added or subtracted as the site designer wished. These became the function sets that can be installed in conjunction with a framework.