Meteor is an ideal framework for creating quick prototypes and building larger applications out of those prototypes. We use Meteor to build and deploy reactive web, mobile and desktop applications with JavaScript.
Many medium-sized and enterprise e-companies use Meteor, including Dispatch, Honeywell and IKEA. Meteor is publicly available under the MIT license.
How Does Meteor Work?
Meteor is a full-stack framework. In practice, that means Meteor applications include client code, which runs in either a web browser or Cordova mobile app, server code inside a Node.js container, as well as a common code that runs on both client and server sides.
How to Get Started With Meteor
The file structure used by Meteor is simple: All client-side files are located in the client directory and all server-side files (Node.js) are located in the server directory. Entry points to both client and server apps are also created automatically by the CLI. The next step is to start coding your app.
What Are the Key Features of Meteor?
Meteor Integrations
Meteor integrates with all of the popular front-end frameworks out-of-the-box including Angular, React, Vue, Svelte and Blaze.
As for databases, Meteor supports any database with a Node.js driver. However, MongoDB is definitely the most popular choice among Meteor developers.
Are you a mobile developer? Meteor can be used to seamlessly create both iOS and Android apps since Apache Cordova is used to compile the code. Due to its increasing popularity, developers added React Native integration to Meteor.
Meteor Resources
The Meteor team has built extensive, highly detailed documentation for developers, comprised of the following resources:
- The tutorials page: This is the ideal place for beginners to get started.
- The Meteor examples GitHub repository: This repo features many open-source sample applications built with Meteor.
- The Meteor guide: Once you’re acquainted with the basics, the guide covers intermediate to advanced content.
There are also several community resources available to Meteor developers. These include:
- The discussion forums: where members of the community can interact with each other and with members of the Meteor core team.
- The Slack community
- Atmosphere: the repository of Meteor community packages.
Meteor Cloud
Meteor also offers cloud services to host, monitor and manage Meteor apps. Meteor Cloud boasts the following features:
- Meteor specific hosting
- Collaboration via organizations
- Free deploy
- One dashboard to rule them all: Access to Atmosphere, Meteor APM and Galaxy Hosting from one centralized dashboard.
Advantages of Meteor
JavaScript Only
Meteor allows you to develop full-stack applications in one programming language: JavaScript. This means that you will be using the same language both in the client and server, which isn’t necessarily the norm.
Community Support
Meteor is backed by the community. It was developed as an open-source project and even though they’ve gone commercial with Meteor Cloud, Meteor still boasts a supportive open-source community.
Cross-Platform Code
Meteor allows you to write cross-platform code. Meteor can generate mobile apps from the source code of your web application. You can also work from a single codebase with full Android, iOS and web support.
Build Real-Time Applications
With Meteor, you can build real-time applications by default. Meteor offers a publication and subscription API which allows developers to publish data from the server’s database, and subscribe to it within the client so changes to the data are reflected in the client in real time.
Security
Meteor has several built-in security measures including encryption, HTML escaping, secure browser storage and more.
Disadvantages of Meteor
Can Risk Inefficiency
Because Meteor has Node.js at its core, and JavaScript is less performant than other programming languages, applications that require heavy computational work will most likely be inefficient.
Performance Bottleneck
Real-time publications are an amazing feature that Meteor offers, built on top of MongoDB, but it’s also Meteor’s main performance bottleneck. Tracking real-time data results in a high performance cost, so it’s important to make sure that publications are used only when reactivity is strictly needed.
Tightly Coupled to MongoDB
Meteor is tightly coupled to MongoDB. If you’d rather use a relational database instead of MongoDB, this will require making changes to your application and potentially losing some of Meteor’s out-of-the-box features, including authentication and real-time publications and subscriptions, unless you implement them yourself.
Meteor Examples
There are hundreds of applications built with Meteor. Here are some examples: