- Meteor is an awesome platform for building web applications, but it can also be used to go beyond the web. Using its modular approach you can use Meteor as the backend for your iOS and Android apps as well as use it to power the internet of things. You can build virtually any kind of app and to make life easier out of the box it is just perfect to build web applications really quickly. Meteor delivers.
- Meteor is built on top of on Node.js, which is used for some of the biggest sites on the internet. PayPal relies on it for their payments infrastructure, and also many other big names. Here’s a fun fact: Did you notice that Node.js is still a v0.something? So don’t worry about Meteor not being 1.0 yet. Node.js is taking over and Meteor will too, eventually.
- Meteor can be learned in hours. You can get almost instant results which is not only a great motivation if you get started with programming, but also if you are experienced you will not have to spend a lot of time to actually accomplish anything with Meteor. Probably the best way to find out how you can use it in your next project is to invest a day or two and start learning Meteor!
- Meteor brings its entire infrastructure with it when you start. A single command installs Meteor on your system, a second creates a new project and a third starts the full stack, with Node.js and MongoDB. There is no need to request any development systems or waste time configuring servers, ports, and paths. Need to change something? You can use the command line to easily change ports, database instances, etc. Get started with Meteor. (Of course deployment into scalable architectures is entirely possible, even if it takes more than a couple of seconds to set up.)
- Instead of bundling all functionality in Meteor’s core it uses packages to extend your application. And there are a lot of packages available on Atmosphere, but you can also use any npm module you like!
- Internally Meteor also uses packages, which makes it even more flexible as you can just take a subset of functionality and substitute it with something else. Like having an Angular frontend using a Meteor backend. Or running Meteor against a Java backend. Now, how clever is that? (You see what I did here?)
- During the early development stages your life will be made so much easier by automatically sharing all data between the server and the client and not having to worry about permissions on either end. Before you send a Meteor application into production you obviously have to make it secure, so not everybody can access your database from the browser. So you start with a less secure development environment where you can quickly bootstrap an application and then make it production ready, which includes securing access.
For the go live you simply need to remove 2 (as in two!) packages from your application, namely autopublish and insecure. By the time you go into production your app will not be any less secure than any other PHP, Java, or Rails application.
- Still not convinced? By using its magical reactiveness Meteor is sure to amaze your users (well probably more the developers)! Any changes made by other users, like adding comments, may be automatically pushed to all connected clients. It just works – pretty much out of the box without writing that specific code to push data across the wire.
Not having to write specific code to manage data distribution makes development so much quicker and more fun, because you can simply focus on your application logic, not worry about logistics. That’s the beauty of transparent reactive programming.
- Being an isomorphic framework you can save even more time: You write code once and it becomes agnostic of where it is executed. Write a function to validate a credit card number and let it run on the client and use the exact same code to validate on the server. Less coding time, less lines of code, less errors.
Sharing code is as easy as putting your file in a common folder of your app. All specific code (like secret API keys or mapping mouse events) may go inside a
client/folder. Meteor blurs the line between client and server to get you even more DRY.
- In the end of the day, Meteor is nothing more than a collection of software. Of course you could build it all by yourself, but why should you? You don’t build your own linux distro, so why spend days or even weeks to evaluate and pick a frontend framework, a rendering library, a build tool accompanied by a server framework, a WebSockets library, then deciding for a database, creating your own format to exchance messages between server and client, define a REST api, only to create a small client project. Pick Meteor and you are ready to go in an instant.
Meteor is certainly not the holy grail of development frameworks and it sure will not make either Java nor Angular go away any time soon. But it shows that there is clearly a better way to create at least 80% of all the apps worked on today. If you can spare a day or two you should give it a chance, perhaps even for a paying customer project. The community is great and the technology simply amazing.