A few ideas I'd quite like to cover:
- Code structure in your views is important. It's easy to create a templating engine, hard to create a good one. Layouts (inheritance...) and mixins (partials, functions...) are the key to not having a messy set of views.
- Generators give you a fantastic opportunity to use propper control flow structures in your asynchronous programmes. They also make it easy to provide propper error bubbling behaviour.
- Thunks are still almost a type of promise, and in order to make them handle all the corner cases correctly you have to add just as much code as with a promise. They don't actually represent the result of an asynchronous operation, and from there all problems stem.