Learning a new technology: Meteor - Day 1

The following 815 words were published by Johan Bové on .

November 2015 - Building Meteor applications

I'm going to learn how to build applications with "Meteor" this month. I'll be collecting plans, challenges and thoughts here.

What got me started was this excellent talk on "Angular Meteor" by Uri Goldshtein.

What is it and why is it interesting?

"Meteor.js is a cohesive development platform, a collection of libraries and packages that are bound together in a tidy way to make web development easier. It builds on ideas from previous frameworks and libraries to offer an easy way to start a prototype app, but it gives you the tools and flexibility to build a full fledged production app. There are libraries like Tracker and Blaze that the Meteor Development Group has built specifically for a reactive front-end experience."

"Meteor is an ultra-simple environment for building modern websites. What once took weeks, even with the best tools, now takes hours with Meteor." - copied from the docs

"...because Meteor.js is built on top of Node.js, you could start to build in something like Angular.js and you will be 'less stuck' than you think. Plenty of people are doing it, and I've known of a few people that have adapted an Angular app to work directly with Meteor." ~ Quote by Josh Jowens, author of "What is Meteor.JS"

"Meteor is a framework that lowers the barrier to entry for building apps with presence. It is an open source platform for realtime & reactive apps aligned toward the vision that delightful apps can be built easier, better, and faster than ever before. Developers can use Meteor to create software that feels alive with activity. Companies no longer have to forfeit palpable user experiences due to technical complexity. When Meteor wanted shining examples of their technology to accompany the official launch, they reached out to us to design and build it." ~ Percolate introduces Meteor

And all of this is compatible with Windows! Yay. That sounds almost too good to be true though. Let's find out how I will master this.

Day 1 - Log

  • I followed the tutorial and managed to setup the "Simple Todo" tutorial application and deploy the app to the Meteor hosted "cloud".
  • Next step was looking at the example application "Todos".
  • Learned about the Meteor package manager called Atmosphere.
  • I upgraded the "iron:router" package in the "Todos" example application to the latest version. Learned how to manage packages; the command meteor help is my best friend right now.
  • Investigated the CSS (LESS) code and structure and found out the app is using the incredibly extensive Less mixins library from Made By Source's "LessHat".
  • I'm considering buying the book "Discover Meteor" since it seems there's a lot of topics to cover and some guidance is still welcome.
  • Got to know the Velocity Engine testing framework. Which also seems to push their own book "Meteor Testing"
  • Dr. Llama introduces me to "Bullet-proof Meteor applications with unit testing (TDD)" and here is the Github code repo for the BulletProofMeteor example application.
  • And here is an explanation on how to host Meteor apps on your own (VPS) server. Something I want to try set up on my DigitalOcean set up.
  • I also always wanted to give MongoDB a try.
  • Installed the "Local Market" example application.

Questions & Challenges

  • Who are the people behind Meteor?
  • What I'm not keen off is that none of the example apps have "linted" JavaScript code. There's not even the "use strict"; statement. There's probably a good reason for it.
  • There's a boat-load of documentation to go and read through.
  • Most of the articles and documentation I found seems to be dated from about a year ago. Wondering why that is?
  • As with any "example" application: the initial "Simple Todo" application only was the tip of the ginormous iceberg; building decent web apps are way more complex than that. Good thing that the "Todos" example is more complete; although it still runs with the insecure mode active. Wondering how to get it working with that package removed?

Inspiration

Installing Meteor on Windows

Resources

Tutorials

Iron:Router

Books