The vision which makes Meteor shine

Meteor provides a simple environment in which reactive web and mobile applications can be easily written and built. Meteor is open source, but it is still officially being developed by Meteor Software. It’s a JavaScript framework built using Node.js. One of its core features is its reactiveness, which means that a change in the application is reflected at once on all the other clients. Meteor is isomorphic, meaning that both client and server side can be written in the same language. Furthermore, Meteor allows for different front-end technologies to be used. This all makes Meteor a great framework to create web and/or mobile applications.

End-users mental model

When end-users, in this case the developers of a web or mobile application, choose Meteor as the platform to use, they do so because they expect the platform will relieve them from work which they should otherwise have done manually, and because they believe that Meteor is a better fit for their project than any other framework. This is partially achieved by giving the right expectations in advance with clear documentation and feature listings, and partially by having a platform which is robust enough to be used for various types of applications, and having support for extending to applications which were not thought of in advance.

In every step of the development process, the benefits of using Meteor should weigh up to the extra effort needed to use Meteor. This holds for time, i.e. learning how to use Meteor should not cost more time than it saves, but also for architectural decisions. When designing the architecture of the Meteor system, indirectly decisions are made about the applications of the end-users. The Meteor platform guides the users into a particular structure for their application, but this should never result in decisions which the developer feels like they are sub-optimal for their application.

Key capabilities and properties

The intended capabilities and properties of the Meteor platform play a large role in making decisions and trade-offs about the architecture of the platform.

Capabilities

There are a few features of Meteor which make it unique and are therefore characteristic for this platform.

  • Multi-platform development The Meteor platform is designed to develop for web, iOS, Android or desktop apps with one code base.

  • Simplify coupling Since Meteor is a full-stack platform it allows developers to easily connect different parts of the application to each other, from the database to the end-user’s screen. This reduces the amount of code that has to be written to create a working application.

  • Plug-and-play popular frameworks and tools Meteor allows developers to choose their own frameworks and tools - like front-end framework - to be used in a project and makes it easy to connect these to the other components of the system. Meteor also fully supports NPM.

Properties

To make the Meteor platform work a couple of properties are maintained:

  • One language Every environment, i.e. the application server, web browser and mobile device, uses the same language: JavaScript.

  • Data on the wire The webserver does not give HTML directly to the client. Instead, the server sends data needed to let the client render the application.

  • Full-stack reactivity Meteor tries to keep all parts of the application in sync allowing to create a real-time interface which shows the actual state with minimal development effort.

Who built Meteor?

Like most open-source projects, Meteor started small. As ‘Skybreak’, it was a framework for “weekend projects and small applications.”1 Now, it has grown to a fully-fledged framework that can also be used in enterprise applications. Who are the people that facilitated this growth? In this section, we look at the different stakeholders involved in Meteor’s development.

Meteor Software: core developers

While Meteor is open-source, it does have main contributors, known as a company called Meteor Software (formerly Meteor Development Group). Ultimately they decide Meteor’s future roadmap, as well as what contributions are merged into the project. This is important information for anyone who wants to contribute to Meteor, so they know in which areas they can contribute. It is important to them to make sure it is up to date.

Meteor Software follows two rules when it comes to developing Meteor:

  • Nothing in Meteor should harm the experience of a new Meteor developer.
  • Nothing in Meteor should preclude an expert from doing what they want.

They consider meeting these standards as hard, but incredibly rewarding.

Us developers: the end users

It’s strange to consider developers as end users of a product. However, Meteor truly is a project by developers, for developers. As people who have used Meteor, we enjoy how easy it is to use, and how little ‘boilerplate code’ was needed to get our app working (and the real-time updates are just super cool). In turn, this was greatly appreciated by our client, and the end users of the app we developed from scratch!

The advantage of having developers as end users of your project, is that they, in turn, can contribute to it (did you see how we already made our first contribution!). This is of course a win-win for any software project. On top of that, not only does Meteor accept contributions to its core functionality, it also has its own package manager, Atmosphere, where developers can publish their own Meteor packages.

Galaxy clients: the customers

We already mentioned how throughout the years Meteor has scaled up to an enterprise level. Large companies like Ikea or Mazda2 use Meteor for their websites or applications. For this purpose, Meteor Software developed Galaxy, a hosting platform designed for Meteor applications. As someone who has used it, I can tell you it takes literally zero effort to deploy your application, and you also get access to a bunch of metrics you can use to improve it.

Galaxy is how Meteor Software makes its money, and it and its clients are therefore very important to the development of Meteor.

Silicon Valley: investors

Lastly, while Meteor has been pretty successful since its launch3, it still needed investors to facilitate its growth4. These investors not only provide resources, but also knowledge, for example in the founding of Galaxy. In return, they get a seat at the table and a piece of the pie.

Current and future context

For the context we look at what Meteor provides and what kind of external connections exist, which can be found in the diagram below. The Meteor framework is an open-source Javascript web framework which allows for the fast creation of cross-platform code. The framework intigrates MongoDB and uses the Distributed Data Protocol and uses the publish-subscribe method to automatically push changes in the data to clients without the need for synchronization code. Despite being open-source, Meteor is actually developed by Meteor Software. The startup intended to become profitable through a hosting environment called Galaxy, which is designed for Meteor applications.

Because Meteor is able to cater to a wide range of applications it follows that a large variety of companies and persons use the framework. Companies such as Mazda and Ikea use Meteor, but also beginning or “ordinary” developers can use Meteor for their apps and web applications. However Meteor faces competition from numerous candidates such as Vaadin, Groovy and Spark. Which are all alternative open-source frameworks. Finally, Meteor prides itself on the amount of help available on StackOverflow, and they have their own section of blog, forums, FAQ, tutorials and guides to help starting developers and keep more experienced ones up-to-date.

Meteor context

Future roadmap

Meteor was purchased in October of 2019 by Tiny Capital4, which promised that it would continue to invest in Meteor. This can be seen as Meteor Software recently finished their update to Node.js 12, and is working on their tutorials for using Blaze, Vue, Angular, React and others in combination with Meteor.

The planned future updates of Meteor can be found in Meteor’s own roadmap5, in which there are desired features to implemented in the near- to medium-term future. The points of improvement in the roadmap are based on feedback provided from Meteor’s users and developers, and are updated accordingly every quarter.

The roadmap is divided into several sections from proposed improvements to the core of Meteor, to documentation and tutorial updates. The idea is that at least two people take the lead on a point of improvement. Proposed updates to core include ultra-thin Meteor, a minimalistic version of Meteor and performance improvements regarding (re)-building the application.

Furthermore, the future roadmap of Meteor is also influenced by the updates of other frameworks and environment, which Meteor uses. The generally strategy seems to be enhancing existing relations such as updating Cordova to 9 and update the intigrated MongoDB driver. Also platform specific improments are suggested, such as the improving the performance on Windows with ideas like build-in-place.

Meteor