This diagram illustrates what we call « everything's an app »: much like OOP, an application can be extended by other applications for customisation or additional functionalities.
The base application ("Forms" in this example) is restricted to core features for its adoption to be maximised. Extension applications, such as "Captcha", may prove very popular too. Nevertheless, since they are separate applications, they won't deter people after essential functionalities only from using the base application.
This system is a good way to prevent forks and promote pooling of applications.
Novius OS is a CMS built around data. One of its main roles is to allow the data to flow between applications and in/out of the the OS.
Standardised data types are defined, such as name, URL and image. They are called shared data. Each application indicates the data it releases. The blog application, for instance, provides a name, an URL, an image and a text for every blog post.
Some applications are able to make use of the shared data thanks to their data catchers. These components watch the shared data and interact with the pieces they're able to exploit (e.g. the Twitter application will only need a name and a URL to tweet). Some data catchers require a user action whereas others operate automatically.
In addition to data catchers, three other components exist.
Launchers are often the most visible part of an application. They add an icon to the home tab. While some applications don't need any launcher (e.g. captcha we've talked about earlier), others will have several. The newsletter application, for example, may have a "Build your campaign" launcher and another for statistics.
Templates are similar to other CMS' templates or themes. They provide a view for the front-office. Again, an application may feature 0, 1 or n templates.
Enhancers are used in WYSIWYG editors. They provide functionalities for the front-office, like the forms application which allows users to insert forms in their web pages. As for all the components, an application may feature 0, 1 or n enhancers.
URL enhancers, a specific type of enhancers, handle their own URLs. Every blog post has a URL for example.