+-------------------------------------------------------------------------------
+
+Well, what makes Mir different than other Content Management Systems is
+that it does not generate the content pages dynamically or use simple
+caching methods. Rather it generates static .[s]html files exclusively.
+This makes mir very fast under high viewing loads as it does not use
+servlets for this at all. It also makes it very easy to mirror as the
+mirrors do not have to run any Mir code, they only have to have a static
+webserver. In fact the first site to use Mir, germany.indymedia.org is on
+a whole other machine on another continent than the machine that
+*produces* the static files. Germany.indymedia.org already has 3 mirrors.
+
+The mircoders.producer.* classes are responsible for creating these static
+.html files and the filesystem structure that they reside in. This
+includes files that are article summaries and files that are the whole
+article themselves. Some media types also require Producers.
+
+If the main content *viewing* server is on another host, the FS tree is
+then rsync'ed to the viewing host.
+
+The Producers are called exclusively from the ServletModules in
+mircoders.servlet.*. They are called when a new article/comment is added,
+or when an administrator/moderator makes modifications to the site or when
+a manual update is desired. The method "handle()" is the one that does all
+work it takes parameters that tell it to force update all files even if
+their contents is unchanged, etc.. some Producers take an article ID as an
+argument telling them to create the html page representing the article and
+any summary pages that might be changed due to the addition of the
+article.
+
+Producers of course use Entities, Database, MediaHandler and Module
+objects internally.
+
+A dB field called is_produced is used to determine wether or not an Object
+needs to be produced.
+
+Oh and before I forget, it generates the pages based on a template. It
+uses the Freemarker templating system. Doc on freemarker is available at
+freemarker.sourceforge.net I believe.
+
+TODO: In theory it would be cool if we could abstract the output mechanism
+further to use other types of templates and to generate content other than
+HTML (like WAP for example).
+
+Media Handlers
+-------------------------------------------------------------------------------
+They are kind of helper classes to deal with different representations of
+media types. They are called via the java reflection API. The class names
+are resolved through the media_type table. See
+source/mir/media/MirMedia.java for documentation.
+
+Helper classes
+-------------------------------------------------------------------------------
+mir.misc.* (source/mir/misc/*) contains a bunch of classes that do Regexp,
+file handling and those sorts of things. Always look here first before
+writing such a thing.