I think the fact that MDG is pivoting shows that they won’t die. If they continued on with Blaze and Pub/Sub subscriptions they would have made a great system for beginners and small apps… not medium businesses and enterprises
IMHO the best value add from MDG is to create a great abstraction over things.
-
If you compare Apollo server vs GraphQL.js, Apollo is far easier and more convenient to use.
-
Authentication can be hard and tricky to implement securely. MDG has made a great abstraction over that to provide a fairly seamless experience across quite a few authentication schemes. This also includes a password reset setup which emails out a reset link as well as binds a route to handle it.
-
Sending emails has been very easy. Their email package has worked out rather nicely
-
Fibers on the server has made my life easier for years. Today async await is just finally becoming an alternative, though it’s still not quite as nice as fibers.
-
Sending proper JSON responses takes some time and simple-rest provides a really really nice API to create JSON endpoints in a few lines of code (though not directly from MDG).
-
Deploys in vanilla Node are still non trivial. If you pay it you can
meteor deploy
in a few seconds and be up an running with no hassle. Their rates are comparable to other providers with similar services/conveniences. This is a huge win.
Historically there were some other great abstractions that… well… didn’t really work great. They work good but not exceptional for a lot of use cases.
I think in time we’ll see more abstractions over things like Redux and others to hide away the boilerplate (like Apollo does for GraphQL). I was hoping MDG would release an abstraction like create-react-app first but I understand the importance of backwards compatibility with tooling. I would expect them to have something similar in time (they know the build tool currently is not ideal).
IMHO Blaze was a great idea that didn’t really scale well (codebase wise) with global everything. Once you try to cover the last 20% the Blaze gets very complex and convoluted. Very few teams with large apps with multiple team members are glowingly happy. It becomes a game of whack-a-mole and don’t touch that piece or the whole app may break.
Publish/Subscribe works fairly well with simple resources and simple templates but once you layer on 10 more packages that start abusing the subscriptions it quickly becomes an issue with a decent load of concurrent users. Typically it just costs a lot more monthly, most of us don’t hit a bottleneck where horizontal scaling doesn’t work. I’ve worked on a lot of apps to speed up slow data responses. Cutting out pub/sub usually yields an order of magnitude or more of speed… just by cutting them out and switching to Meteor methods… which are almost 1:1 to a GraphQL mutation.
What’s nice is that if Blaze and Pub/Sub work for a project, we can still use it I honestly think a community fork that is geared towards prototyping and beginners would be amazing. We could simplify Blaze to be as simple as it was in 2012, make more things automagic like autopublish since these apps (on this fork) are not geared towards heavy prod use.