Meteor - Why


What is Meteor?

Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community.

  1. Meteor allows you to develop in one language, JavaScript, in all environments: application server, web browser, and mobile device.
  2. Meteor uses data on the wire, meaning the server sends data, not HTML, and the client renders it.
  3. Meteor embraces the ecosystem, bringing the best parts of the extremely active JavaScript community to you in a careful and considered way.
  4. Meteor provides full stack reactivity, allowing your UI to seamlessly reflect the true state of the world with minimal development effort.

What are some nice features that come with Meteor?

  1. A built-in LiveReload feature so you won’t have to manually refresh your browser.
  2. The freedom to structure your projects however you want. There are standards you can follow but no strict rules or conventions.
  3. The sheer modularity of Meteor that allows you to mix-and-match different components in case one part of Meteor isn’t to your liking.

So while Meteor has its fair share of “magic” and conventions designed to make your life easier, you can still make choices based on your personal preferences. It’s the best of both worlds.

What are the key benefits of developing with Meteor?

  1. localStorage is fully integrated. One line of code can run on both the client and the sever and do different things in either environment. Here’s why this matters: When the statement to create a collection runs on the server it, predictably enough, creates a collection. But when that same statement runs on the client (which it will do by default), it creates a purely local collection within the user’s browser. The user then interfacts with the local collection directly, which is why the data on their screen can change instantaneously, while the local and server-side collections are seamlessly synced in the background.
  2. Social / OAuth authentication is fully supported. See smart packages on this page.
  3. Meteor has a very active community with a wide range of third-party packages
  4. It is optimized for developer happiness
  5. Reactive Rendering: Meteor offers a reactive front-end. To a layman, this means that all elements on the client application are automatically updated, across the application interface, and across all simultaneous users. This out-of-the-box capability of real-time updates has now become a standard norm across all modern collaborative applications. Reactive rendering also cuts down your front-end code, and significantly reduces your total development time.
  6. One click deployment: One of my favorite features of the Meteor framework is that it runs its own server, and maintains its own instance of the database. This means that no additional set-up is required, and there are no additional installations. The Meteor development group also offers a free hosting solution, where test deployments can be done with a single command. This speeds up the testing and feedback process for new applications. A quick how-to tutorial on Meteor deployments can be found here.
  7. Search engine optimization: We are happy to announce Meteor 0.3.9 and the new spiderable smart package, which allows Google and other search engines to index Meteor applications. The spiderable package uses the AJAX Crawling Specification published by Google to serve HTML to web spiders. When a spider requests an HTML snapshot of a page, the Meteor server runs the client half of the application and returns the full HTML generated by the client code. This version of spiderable uses phantomjs, a headless browser. A future release will eliminate the dependency on phantomjs and run the client code directly. You can add spiderable to any Meteor app. To get started, type meteor add spiderable. If you deploy to our servers with meteor deploy you're all set. If you're running your app on your own infrastructure, you'll need to provide a copy of phantomjs. See the spiderable docs for more.
  8. Live CSS injections: During development, when you change your app's CSS but not any other files, the CSS will be updated in all open browser tabs without a page refresh. This works even if you are using a CSS preprocessor such as LESS or Sass.
  9. Isobuild: Isobuild is a build tool "like make, gcc, and ld in the Unix world" that creates multiple programs from a singular codebase, allowing one application to run natively on the web, iOS, and Android – or bundled into a tar ball. Of course the developer is going to have to do some work. For example, if you want to access the camera of a mobile device, the first thing you have to do is add the camera smart package to your project: meteor add mdg:camera.
  10. meteor has you covered with reactivity, variable binding and dynamic clientside templates. Stuff like automatic asset compilation and wiring up all the components of a frontend app is a no brainer, too.

How does Meteor differ from other frameworks?

In Meteor, you don't program routines and functions, you program page elements. It is very component-oriented, in that just instruct Meteor how something should work, and it will take care of updating the page in realtime. This means that you don't need to write any AJAX or DOM manipulation code, saving you a significant amount of time.

The default templating plugin for laying out your components is Handlebars. In Handlebars, you create templates for your components, and Meteor will process these at runtime and generate dynamic HTML.

  1. You don't write Ajax
  2. No DOM manipulation
  3. Database access on the client and server
  4. Support for offline (perhaps)

What is Meteor Developer Support?

Meteor Developer Support is a paid program to help you get started with building Meteor apps the right way, ensuring you're using best architectural practices throughout your project. Once in the program, you can ask specific questions on topics such as security, testing, and performance so you can take your project from concept into production more quickly. If you are looking for application development services, please work directly with an Official Meteor Partner.

Meteor Developer Support Plans:

  1. Production Support:
    • Up to 3 support cases per month
    • Access to Architectural Reviews3
    • $1,299/month (billed annually)
    • $1,599/month (billed quarterly)
  2. Enterprise Support:
    • Unlimited support cases
    • 1 Day Architectural Review included
    • Starts at $2,999/month (billed annually)

How does Meteor handle hot code reloading?

Meteor apps are single-page apps, which are long-lived in the browser. Single-page apps can sometimes experience conflicts between the server and client due to a version mismatch–especially when new code is pushed often, which is not so rare these days. Fortunately, Meteor features hot code reload, which identifies any code changes on the server and asks the browser to reload. Additionally, Meteor is smart enough to preserve session information through the reload.

Due to the default hot code reload logic, a Meteor client app needs to connect (via DDP) to the same server it was loaded from.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License