I think the criticism comes from a place of misunderstanding. At least the way I see it, Meteor is about optimizing the process of taking an idea to a minimum viable product (MVP).
Everybody has a zillion app ideas, and statistically, the vast majority of these will never even become working prototypes, let alone production applications. Why? Building an idea is hard:
Furthermore, if you do make it, the idea that ends up being successful is likely to be different than the one you originally had:
Actually, startup ideas are not million dollar ideas, and here's an experiment you can try to prove it: just try to sell one. Nothing evolves faster than markets. The fact that there's no market for startup ideas suggests there's no demand. Which means, in the narrow sense of the word, that startup ideas are worthless. The fact is, most startups end up nothing like the initial idea. It would be closer to the truth to say the main value of your initial idea is that, in the process of discovering it's broken, you'll come up with your real idea.
I like to think of idea to POC as a funnel, just like we'd look at for optimizing trial conversions for a SaaS application. Here's a typical marketing funnel:
At a high, high level, one of the things a marketing team is doing is looking at the dropoff between steps, and trying to figure out how to optimize each step to ultimately get more paid accounts.
If you think production applications are ultimately a force for good in the world, you can envision a similar funnel for potential creators (these numbers are a wild-ass guess):
Most ideas sit in creators' heads doing nothing. Some fraction of those actually get some work done– someone scaffolds a new rails app or creates a Github repo– and some tiny, tiny, tiny fraction of those actually see the light of day as something other people can even interact with.
It seems kind of depressing, but ideas are cheap to come up with, building them is hard, and time is expensive. The only reason big, complex web apps can be iterated quickly is because you have huge teams on them, and unless you're flush with cash, nobody will be willing to pay for the big team until you have your MVP validated and in the market (or at least in front of investors).
Meteor reduces the time to build an MVP, and in doing so, also reduces the mental barrier to starting one. It's optimizing the build funnel.
They're not the first ones to do this– many popular web tools of the last ten years have served a similar purpose:
- Ruby on Rails, Django, and other MVC frameworks were a jump from CGI scripts and hand-coded routing
- Twitter Bootstrap let teams quit bike shedding over design and have something that looked okay-to-decent from day one.
- Node.js and Heroku (especially with the hackathon-starter repo) further cut time-to-prototype.
But Meteor is like Node and Heroku on steroids. It provides directory structure, basic objects like user accounts, packages for adding authentication and integration with other tools, and everything updates in realtime, both locally and on the server.
Creating an app scaffold:
meteor create simple-todos cd simple-todos meteor
meteor deploy my_app_name.meteor.com
Obviously there's some stuff in the middle, but try the tutorial: it's seriously really easy.
I don't know how Meteor scales to thousands of simultaneous connections. I don't really care. When you've created an app that provides value to hundreds, you can figure it out or pay someone else to.
I also don't care that Backbone/Angular/Ember with Mongo/Firebase/Heroku Postgres is functionally equivalent and technically superior in some way. If you're already fluent in a collection of technologies that lets you rapidly prototype, that's great! You're ahead of most of the population, and Meteor's not for you.
Meteor is for the students, the people with day jobs, the people tinkering on hackdays, the people who are fighting an uphill battle to learn a tech stack at the same time they're wrestling with design, logic, and everything else that goes into their project. Meteor makes all this just a little bit easier, and when you're optimizing a funnel, just a little easier is worth a lot.
- You want customer development in there, if you're working on more than a hackday or hobby project. Meteor can help with customer development by providing rapid prototyping capabilities
- The Meteor team is adamant that it's not just for prototyping; their homepage has some videos of companies using it happily in production. I'm not sure if it would be right for every scaled app, but it's great to see those proof points.