I’m questioning whether it’s productive to consider popularity when building components that will underly the long-term architecture of other people’s software. Overnight success can disappear as quickly as it arrives, and I, for one, have a lower time preference for these things. I’d rather be responsible for a tool that gains a lot of respect for being a robust, reliable and high-performance piece of kit over a long period of time, than one which had blazing popularity in the beginning but then proved to be the source of many a developer’s nightmare later.
Popularity of a non-overnight type is one of the biggest reasons to use something like Postgres or Rails: this means it gets beat on a lot, there is documentation and you can find people who know how to use it.
Some projects with this kind of popularity (n.b.: not the ones I mentioned by name) are designed like shit, do irrational things, have performance problems, have security problems, whatever. But they have been used and they are usable and you can find documentation and experts to deal with them.