Nebula is an HTML/JS application written in AngularJS using the MVC (model-view-controller) pattern.
The model is composed of JSON objects, arrays, and strings which represent the current state of the application and its communications thus far with a stream.
The view is comprised of AngularJS directives which are bundled together in views and presented to the user as web pages. Users change views through routing.
Each directive's controller is an AngularJS controller which utilizes shared services, global variables, and filters.