# Meteor (web framework)

Meteor, or MeteorJS, is a partly proprietary, mostly free and open-source isomorphic JavaScript web framework written using Node.js. Meteor allows for rapid prototyping and produces cross-platform (Android, iOS, Web) code. The server-side MongoDB program is the only proprietary component of Meteor and is part of the Meteor download bundle. It is possible to use Meteor without using the server-side MongoDB. It uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code.
Meteor uses JavaScript as its primary programming language, enabling developers to use a single language for both client-side and server-side code. This approach can streamline the development process for mobile applications by reducing the need for additional programming languages. On the client, Meteor can be used with any popular front-end JS framework.
Meteor is developed by Meteor Software. The startup was incubated by Y Combinator and received $11.2M in funding from Andreessen Horowitz in July 2012. Meteor raised an additional $20M in Series B funding from Matrix Partners, Andreessen Horowitz and Trinity Ventures. It intends to become profitable by offering Galaxy, an enterprise-grade hosting environment for Meteor applications.

## History

Having been in development for about eight months, Meteor was initially released in December 2011 under the name Skybreak. By April 2012, the framework was renamed Meteor and officially launched. During the next few months, and with the help of large investments from Andreessen Horowitz and endorsements from high-profile figures in the startup world, Meteor steadily increased its user base. It became more commonly used in production apps and websites.
Particularly after receiving large amounts of venture capital in its Series B funding round, Meteor acquired and integrated several other startups into its core product. Acquisitions have included FathomDB, a cloud database startup, Galaxy, a cloud platform for operating and managing Meteor applications, and Kadira, a performance monitoring solution. Meteor has successfully monetized its userbase: In 2016, Meteor beat its own revenue goals by 30% by offering web hosting for Meteor apps through Galaxy.
From 2016 the Meteor Development Group (the open source organisation powering Meteor) started working on a new backend layer based on GraphQL to gradually replace their pub/sub system, largely isolated in the whole node.js ecosystem: the Apollo framework.
In October 2019, the Meteor.js open source framework and Galaxy Hosting Products were purchased by Tiny Capital and renamed Meteor Software.

## Distributed Data Protocol

Distributed Data Protocol (or DDP) is a client–server protocol for querying and updating a server-side database and for synchronizing such updates among clients. It uses the publish–subscribe messaging pattern. It was created for use by the Meteor JavaScript framework. The DDP Specification is located on GitHub.

## Books

* Coleman, Tom; Greif, Sacha – Discover Meteor (2014)
* Hochhaus, Stephan; Schoebel, Manuel – Meteor in Action (2014)
* Müns, Philipp – Auditing Meteor Applications (2016)
* Strack, Isaac – Getting started with Meteor.js JavaScript framework (2012)
* Susiripala, Arunoda – Bulletproof Meteor (2014)
* Titarenco, David; Robinson, Josh; Gray, Aaron – Introducing Meteor (2015)
* Susiripala, Arunoda – Meteor Explained – A Journey Into Meteor's Reactivity (2014)
* Turnbull, David – Your First Meteor Application: A Complete Beginner's Guide to the Meteor JavaScript Framework (2014)

## Packages and tools

* InjectDetect – database injection attack detection
* Vulcan.js – React/GraphQL stack built on top of Meteor
* Apollo – GraphQL server with support for Meteor
* Meteor React Native - Package to integrate with React Native