Great frameworks are not defined by fancy algorithms, optimal performance, big communities, or even good test coverage gasp!
A great framework can answer one simple question: does it help me do do what I want to do faster than the alternatives.
I'm a huge node fanboy and have been using it as my back-end language of choice for web application development for almost two years now. I've built production apps with it and I've taught others how to use it. Yet every time I start a new project I'm frustrated with the poor choices out there for structuring my code. There is not a single node web development framework that doesn't frustrate me. I've become a less picky and more practical developer over time, but PHP has far better options for web development frameworks.
After initially fumbling around with Express in 2013 I dismissed Node entirely for about a year. Then in 2014 I was introduced to Sails. It checked off all of the important boxes: big community, smart team behind it, also very popular. It was still early-ish in development when I started using it, but it was way better than Express. It had some opinions about how I should structure my code. It gave me easy ways to read and write to the database. To-date I think Sails is still the best tool out there (for me). But doing development with Sails is still really frustrating. While Waterline (Sails' ORM) is really elegant, it's still missing some critical features like transactions and stable migrations. I could probably get over this, but a few other missing pieces push me over the edge. My sails dev environment involves running forever to restart the sails server each time I make a change to a back-end file. It can take several seconds each time for the server to reboot. This along with poor / incomplete documentation has turned out to be a dealbreaker.
A few months ago I started working on my own flavor of a node web development framework that borrowed heavily from Sails, but aimed to fix some of the issues with server reloading using node clustering and used the more mature and complete Sequelize ORM. I have a block of free time this April and I've been considering spending some time cleaning things up and getting it to a usable state, but the more I think about it, the more I question if it will actually save developers time over the alternatives: and there are a ton. Let's assume I was able to fix all of my qualms with Sails. Without good documentation nobody will ever know about those solutions. Hell, Sails might have already solved these issues but I just don't know about it because it's missing from their docs.
With all that in mind I've decided to spend my time not writing code, but instead writing the documentation for the framework that I want. A node framework that will silently behave in a predictable way. A node framework will not try to do anything magical in an effort to save me time. It will be the most un-magical framework ever.
Instead it will be predictable, reliable, and peaceful. It will be called Willow. I don't know if it will ever actually get built. But if it does it will be built from some awesome docs that will be written before I touch a line of actual code.