NorthernWind is composed of three parts:

  1. The repository provides the storage for the resources that the website relies upon (documents, media, style sheets, etc.). Its a logical filesystem with certain conventions.
  2. The front end reads the resources from the repository and serves them to the internet, directly or composing them together. It's a Java webapp, with alternate versions based on different web frameworks.
  3. The editor manipulates the repository for creating, modifying and deleting resources. At the moment, this part of the architecture is not implemented.

The front end and the editor are totally decoupled, being only in relation with the repository. In function of the specific implementation of the repository, the front end and the editor might be deployed on different computers. This contributes in making it possible to keep the front end simple and reduce the requirements for the server where it needs to be deployed. In case one needs a sophisticated and resource-demanding editor, it can be run on a separate computer that, not needing to be exposed to the web, doesn't imply high hosting costs.