This document discusses component-based front-end architecture. It recommends organizing components into folders for the data layer (models, collections, services), views (views, directives), and public API (controller). The controller implements business logic, stores data/state, and handles data operations. Views render templates, bind to DOM events and the data layer, and trigger actions to the controller with no logic. The data layer examples include Backbone and Angular models/collections/services. Components communicate through publishing and listening to global events with a naming convention. Deferred/promises are used to handle asynchronous operations between components. Screens initialize components and define routes and screen logic.