Async and Await
What the hell is this?  export default function getUsers () {
    return new Promise((resolve, reject) => {
      getUsers().then(users => {
        filterUsersWithFriends(users)
        .then(resolve)
        .catch((err) => {
          resolve(trySomethingElse(users));
        });
      }, reject)
    });
  }

There is never a need to write this type of terrible code if you're using promises. The solution this is not async/await. I agree that async/await and generators are nice, but saying they solve a problem that is not actually a problem seems a little silly.This is typical of many technical blog posts: Overcomplicate a  solution that could be done much more cleanly and clearly in order to show off a new feature, when in reality that feature is actually not that useful.