Wheat's virtual machine is a multi-threaded web server. This is how it puts Wheat objects on the web:

  1. An HTTP request is received.
  2. A module is selected based on the URI in the request and the configuration of the server.
  3. The module converts the URI to an object by traversing the object tree.
  4. The module asks the object to render itself.
  5. The object picks an appropriate template (based on the request).
  6. The template is expanded with the object supplying data values.
  7. The resulting XHTML document is returned.

The templates are valid XHTML documents with no code. They can be edited in any XHTML editor so the graphic designer can go wild. The expansion facility is an XML templating engine that gives control to the object being expanded.