Why we chose Meteor for Unfuddle TEN
As many of you know, Unfuddle has been a primarily Ruby shop for the past ten years. We love Ruby. And it has served us exceptionally well.
However, in the past year, we have really gotten interested in the idea of realtime collaborative interfaces. AgilePad was our first attempt at this (you can read more about that in our previous blog post). Though we were very attached to Ruby, we began to venture out of the ecosystem to test the state-of-the-art in other development communities. For example AgilePad was built on NodeJS, Angular and Firebase.
For a few of our other side projects, we chose to use Meteor. And we have fallen in love. Here are just a few of the reasons why:
-
It is full stack, from the database all the way up to the UI. In the past, we always had to glue together different layers of the stack (Angular for UI, Firebase for data storage and operational transformation, NodeJS for the web server). Meteor makes all of this integration work moot. And it has single ORM for both client and server. So much easier than writing all that glue code!
-
We can use Javascript everywhere; on the client and on the server. This really streamlines our development. And in our case, we have chosen to use CoffeeScript for all of our Javascript. Debates aside, this gives us just a little of the Ruby cleanliness that we all loved so much.
-
It’s reactive. As developers, we only need to worry about maintaining the state of our components. The interface then just automagically does the rest.
-
Meteor is realtime. LiveQuery and DDP are core features of Meteor and they really do a fantastic job of making realtime feasible. If any user updates data, the changes are automatically propagated to every connected client and the necessary interface elements are rerendered. Features like chat, live notifications and live collaboration are now a breeze.
Meteor now supports a few different view renderers. We have used Blaze and Angular in the past with mixed results. But now that Meteor is officially supporting React, we are jumping on the bandwagon. Here’s why:
-
React components provide a high level of reusability. Leveraging composition greatly simplifies our codebase.
-
It has excellent performance due to its use of the virtual DOM.
-
There are a lot of great developer tools out there that make debugging the view much easier. These tools also make it much easier to spot performance bottlenecks.
We are so excited about how Unfuddle TEN is shaping up. And Meteor is a big part of why it’s getting so good.
Are you using Meteor in your projects? If so, let us know some of your experiences. You can comment in this blog, or tweet us at @unfuddle with the hashtag #UnfuddleIdeas.
Question: Are you using Meteor in your projects? Let us know some of your experiences. Share your answer below or on Twitter or Facebook.