Host Meteor Apps Anywhere With Demeteorizer
A while back I stumbled on Demeteorizer, a new way to package Meteor apps into regular Node apps. After seeing a few people using it, I decided to find out more about the project, and got in touch with project creator Brandon Cannaday from Modulus to ask a few questions.
Sacha: First of all, can you introduce what Demeteorizer does exactly? What’s the difference with Meteor’s own
meteor bundle command?
Brandon: Demeteorizer takes a Meteor application and makes it look like a standard Node.js application. This makes the resulting application able to run anywhere Node.js is supported and gives users a much more portable solution.
meteor bundle command works great if the platform you bundle on is the same as the platform you’re deploying to, which isn’t always the case. Demeteorizer uses the bundle command internally as a starting point. It then crawls the folders finding all of the dependencies and builds a package.json from this info.
package.json file, users can now let NPM install dependencies on the destination platform, which is especially important for native modules.
What made you decide to create Demeteorizer?
At its core Meteor is still just a Node.js application and we wanted users to be able to host their application in a production environment. At Modulus we were seeing several users attempting to deploy their raw Meteor source, which doesn’t work since we don’t directly support the Meteor runtime.
We created Demeteorizer as an intermediate step for more broad Meteor support. We open sourced it so users could take their Meteor apps and run them anywhere, not just on Modulus.
Modulus: A Platform Dedicated to Node.js
Can you briefly introduce Modulus? Why did you decide to launch a Node PaaS company?
We took this idea to a startup accelerator in Cincinnati called The Brandery and was accepted. Throughout the program we decided to keep the scalable backend and open it up to more than just gaming, and Modulus was born. Node.js is right in the middle of tremendous growth and there aren’t lot of companies that focus directly on it. This has given us and the few other Node.js PaaS companies a great window of opportunity.
How does Modulus compare to its competitors, such as Heroku, Nodejitsu, or Stackful.io?
What we’ve pushed from day one is metrics. It’s impossible to know what’s going on with your application without data. Metrics are at every level of our infrastructure and require no additional setup by our customers to utilize.
We’re collecting hundreds of millions of datapoints every month and we do our best to convey that information back to our users. When it comes to polyglot providers like Heroku, AppFog, or Stackful, what you lose is that tailored experience.
The reason we’re able to compete for Node.js customers against the big guys is because the deployment process feels much more natural to Node.js developers.
Modulus & Meteor
How did you get into Meteor? Did you develop your Meteor apps of your own?
I can’t claim to be a Meteor expert. I’ve been following the project for a long time and I like the approach they’re taking. Unfortunately I haven’t had the opportunity yet to develop anything serious using the platform. I really started getting into the project after seeing people trying to deploy it to our platform.
Do you see Meteor as a popular choice, at least among Modulus users? Do you see Node developers migrating to Meteor, or are those two separate audiences?
Meteor is still a very small percentage of the total projects on Modulus, but it’s growing. I’d really like to see more users jump on the platform so we can learn what Meteor users expect and what they want from a platform like ours.
In terms of adoption I see a lot of Meteor users coming from other languages that have robust frameworks, like Rails and .NET. Meteor is a nice introduction to Node.js if you’re used to developing with a powerful framework.
Thanks for the great questions and opportunity to discuss Modulus and Demeteorizer.