How MeteorJS made JavaScript application development better and easier?

24 Jan

There are so many misconceptions around about what is Meteor exactly?

To give a broad overview of what is Meteor? Meteor is a full-stack JavaScript platform that can be used to develop modern single page web applications as well as mobile applications. It consists of a set of technologies for developing reactive applications. It allows us to develop our application in just one language, i.e. JavaScript, whether you are developing back-end for your application which will run on server side or a front-end for a web browser.

More specifically, Meteor is a platform for building application using NodeJS with whatever frontend framework that you choose, whether it is Angular or React. Even meteor has its own frontend framework called Blaze. The database is MongoDB by default. It uses NodeJS and NPM and all this sort of stuff. So it’s essentially just a platform for building JavaScript applications.

Why is it better and easier?

There are some killer features like the zero configuration build tool that offer a ton of really excellent build tool facilities like code splitting and dynamic imports and some real time features like tracker that comes with meteor, are really excellent. These real time things are awesome and honestly building a real-time application could not be any faster. I just don’t think anything could compare to the speed at which you are get up and running by using Meteor.

So while Meteor is primarily known for its real time features, it is not necessarily its best features in my opinion. I mean not to say that those features are not good, because they are certainly excellent. However, some of the really excellent things in meteor is just how nicely integrated the front-end is with the back-end. Now what I mean is that; well instead of having to write an API and hit an API and really have a separate front-end and back-end you can use feature like meteor methods where you define your server side functionality on the server and then call your methods directly from the client side and not have to interact and not have to hit an API somewhere. What I really like about Meteor is that you just end up having an application where the client and the server are working together in such a way that is super nice.

Not only that, but the accounts and user authentication system that comes within meteor is excellent as well, it takes all of the guesswork out. One of the least fun aspects of any project which is getting authentication up and running and in terms of meteor, you add a couple of packages such as Accounts and may be some service packages like Accounts-Facebook or Accounts-Google or something like that and well you have access to nice secure logins and something you don’t have to worry about ever again.

Another thing I like the most about meteor is how fast it is to get up and running. If you are not worried about security and you are just doing like hacking project and you just want to test and idea, you can get up and running in like no time and even do really insecure client side writes to your database. I mean you can write directly from the client side to your database if you want. Now obviously this is not something you are going to want to keep in your site when you go to production or anything like that, but it makes testing out ideas and getting started just insanely fast and some of the real time stuff definitely WOWs people upon starting.

When meteor first came out, one of the criticism was that, there is no import system so you cannot use NPM. It was just sort of a fancy real-time app thing that was sort of stuck in its own. However, since then, they’ve added NPM support they’ve added a standard import system and their build tool is just absolutely top-notch. Meteor is become an excellent platform for building standard React or Angular or VueJS applications.

I used Meteor with React on many websites I built and I have really enjoyed, just how easy it made everything work. I didn’t have to code a separate backend, it’s all a part of one codebase that communicates really smoothly. I have noticed, the sites built with Meteor are super-fast and this has to do with the code splitting and stuff like that I am getting from Meteor build tool.

So again what is Meteor? Meteor is a platform for building NodeJS apps that are client side and server side and include database. It uses all of the standard NodeJS that you are used to, so you can quickly get up and running some really excellent applications using whatever front-end framework of your choice.

Meteor has its own ecosystem, which brings the best parts of the very active JavaScript community to you. When Meteor first launched, you were tied into their own front-end framework which was called Blaze, and Blaze was great. However, I prefer to use React and it is so easy now to get up and running with React. if you want to use Redux, it is easy to use Redux. If you want to use MongoDB, it is very easy to use MongoDB, its inbuilt. If you want to use GraphQL it is easy to use GraphQL. If you are familiar with GraphQL, the team behind the Apollo is the same team that was behind Meteor so eventually GraphQL will also become more convenient with Meteor that will make it easier to use Meteor with any other database system as well. Meteor has its own package repository named Atmosphere, where developers can discover and add specially designed Meteor packages to their projects just like they can do with NPM. Also Meteor has a very specifically designed hosting platform named Galaxy, where developers can deploy their Meteor applications, and it is fast, it takes cares of all the infrastructure and scalability hurdles. Basically all of this stuff is making it into a more flexible platform where you can sort of pick and choose what you want.

The guide section available on Meteor website, is an excellent source of documentation. One of the thing I always loved about Meteor is just how seriously they’ve taken their documentation. If you want to find anything about this platform, its right there.

Now one of the criticism of meteor is that scaling meteor applications is difficult. That’s actually really not so true. Scaling a Meteor application can be difficult if you have a ton of collections that are all real time and you are having to deal with all these real time collections, you are not using indexes and you are not essentially writing excellent code. However, if you follow best practices, a meteor application is as scalable as anything else.

Finally, in my opinion Meteor is life and time saver platform which is awesome. It makes life of JavaScript developers so easy by proving so many beautiful features, tools and packages. Building an application with Meteor is a fun. The Quick, Fast, and Reliable way of building Reactive JavaScript application is MeteorJS.

Share this post with your friends!