Components (or modules) talk to each other via events.
- vendor [3rd party scripts, this could as well be bower_components if you use bower]
- core [app core functionalities/utilities]
- component
- component1
- index.js [the actual js component]
- spec.js [tests]
- style.css [component styles]
- index.partial.template
- readme.md [component docs]
- component2
- ...
- component1
- page
- page1
- init.js [includes components and instanciate them]
- styles-bundle.css (bundle of component[s]/style.css)
- index.page.template
- init.js [boot loader for the whole app]