Backbone.js with Steal.js and doT as template system
Clone this project and start building on top of it. I would discard the
folder after starting and create a new, initial commit.
When I started this project, I decided to put all js logic in the app folder. I would argue that a good structure would be: modules-models-collections-views. I would create custom modules used mostly as UI components or communication enablers and use backbone style models-collections to map the application logic. Layouts-views could be solved by using just some extra folders to separate between pages and nested views.
Views are gotten from the server via a synchronous call. The alternative would be using deferred, but although this seems more popular at the moment, I decided it would be easier to do this, because in production the views could be strings under the same namespace and the handling logic would be the same.