The async/await feature makes the code pretty clean for doing lots of async stuff. You can do all of the same stuff with promises (which is what it uses under the covers) but with promises you have to declare variables outside of your current function scope to pass data between functions, where as with async await you don't have to do any of that nonsense. I think the transpiled implementation of async/await for generators is ok so you might be able to get away with using it in environments where generators are available. I'm told that if you don't have generators and you are using the regenerator code for transpiling to ES5 then the resulting code is hideous and contains a bunch of massive loops so I don't know that I would trust that for production. Obviously it will be much better when natively supported and you don't need any transpilation. I really like hapi, but if you wanted to use something else like koa, I'd try to see how it is holding up on any reasonably heavy uses, to see how stable or production ready it is. In my younger years I would have a go at it trying all the latest things, but now that I am older, I let other people debug these new platforms/features. I only use them once they've gotten most the bugs out of them. I do use plenty of the new ES syntax though in the cases where it transpiles nicely into simple code, but async/await and generators are not on that list.