Meteor was a very exciting technology in 2015. It was a zero-config solution for cutting edge features like reactivity, hot code push, and client side rendering. I think it grew quickly because it was extremely easy to use and pick up. Meteor was in the first Node app I ever built, and to this day I’ve never built an Express app.
First let me say this may come off as harsh or shortsighted, but this has been my experience and frustrations over the last few years, solo developing Meteor applications full-time. I greatly appreciate what MDG has done and continues to do for the JS community. After all, they were a travel app startup originally, right?
That said, MDG has made some choices that hamstringed the adoption of Meteor in my eyes:
-
Stopped development on Blaze, which was an extremely productive templating engine. Leaving several bugs and still recommending it in their docs.
-
Slowed development efforts on Meteor to focus on Apollo. For me that creates concern, if they are willing to stop development on Meteor to focus on GraphQL, whats next after GraphQL? How long until Apollo receives a similar fate? What if they decide Meteor isn’t worth the effort anymore? I’m not the only one that feels this way. msavin’s comment Does "resources are not unlimited" === "we will continue to have one developer staffed on the Meteor project"?
hits home for me.
-
arunoda left the Meteor ecosystem to focus on React packages, abandoning the highly used Flow-Router and Fast-Render, which I had to try to maintain to keep working with the latest Meteor updates. Why are we receiving no support from MDG for Meteor’s most popular router? The documentation even suggests using Flow-Router. This contributes to the sense of abandonment. How can you have a JS WebApp framework that doesn’t include a router? And I know it’s “optional”, but this is why newcomers are confused as hell coming to Meteor in 2018. It feels like 80% of a framework where you have to figure out what the other 20% is and how to incorporate it.
-
Bought Kadira and open sourced it but didn’t provide any instructions on how to use it. This could have been an opportunity to earn some developer favor and help mitigate the sense of abandonment. But they put effort into incorporating it into their paid hosting service and let the community try to figure out how to deploy Kadira on their own.
There is no longer a clear path for newcomers to feel that “Meteor productivity” we are familiar with. Do they use React, Blaze or Vue? The docs recommend one router, but should they use React Router instead? Do they use Apollo? If so, how the hell do they setup reactivity? I thought Meteor had reactivity built in? Not if you use Apollo? Well why is everyone using Apollo then? Because you can make it work with subscriptions. How do they cluster the GraphQL subscription server in production? It’s an endless pit of questions now. Meteor used to be an “opinionated” framework and that helped adoption by somewhat enforcing best practices or at least suggesting the components that should be used. Don’t get me wrong, opening Meteor up to work with other renderers and data layers has been fantastic for the future of the platform. But now we’re left directionless trying to put together the pieces.
Meteor went from “it just works” to “it might work if I can figure out what components to use in 2018 based on out of date documentation, forum posts, and changes to cutting edge technologies”.
I would really like to see MDG use their expertise, experience and opinions to put forward a recommendation for components to use in Meteor, and maybe some best practice documentation. Smart defaults (Blaze, Flow Router) that are still maintained would be a great start. It’s great that Meteor is opening its doors to support components from the greater JS community, but I would still love to have guidance from them as far as best practices, pitfall warnings, etc. goes. It’s almost like Meteor needs separate documentation for the React and Vue sub-ecosystems and related components.
The most painful of all is that we can all see what Meteor is capable of, and it’s slow growth is painful. I don’t give a shit about GraphQL. I am sick of switching rendering libraries/database layers/routers every 2 years. I have nothing to gain from Apollo except maybe my collection code becomes twice as verbose. What we had worked well and allowed developers to be highly productive. Now it feels like we can’t have confidence in anything we do. Should we use Meteor’s data layer in 2018 or use Apollo? Will the current data layer be abandoned like Blaze? What happens to Meteor if benjamn is hit by a bus?
Anyone still developing on Meteor has fallen in love with the platform. We don’t want to go anywhere else. We want to feel like MDG has our back. It’s true that in 2018, Meteor is stronger than ever before. You can even use Blaze and ignore all of the changes. But when you read about Meteor, you’re going to see a lot of opinions, frustrations, excitement, and confusion all at once.