Experimenting with Meteor Development
As a designer, dev, and lover of all things Internet, I stumble across the products of pure nerdom daily. Sites like those featuring interesting ways to shareHEXcolors, 50 shades of Grey, or fartscroll.js can be appreciated as well-deserved mental breaks. I wanted to manufacture some nerdiness of my own. What better way than by adding a new technology to my arsenal, too?Side projects give us the ability to experiment, expand, and further build my skill with new technologies in an environment where I am free to make mistakes. This new knowledge can then be brought into client work. But hey, this isn’t exactly groundbreaking insight.
So right, my idea.
Developers, as we know, utilize version control systems. We try to be the best devs we can by committing organized bits of code into this version control system, known as the almighty “git.”Ideally, each should be helpful, informative, and concise. But on your 18th cup of coffee at 3 a.m, or maybe just Friday at 4:59 p.m., these enlightening commit messages tend to slip. We’ve all been there. “Fixed” or “Push” or “its 3 a.m., goodniht”.Wouldn’t it be amusing to see all these weary sidenotes in one place? My solution, gitcommit-m.com, is a web app for just that. Developers submit them on the site and keep them from appearing in your project commit log. But it’s not just for simple browsing--you can vote on your favorites submitted by other users, and see the worst (or best, whatever mood you’re in) rise to the top.
And then it hit me...like a Meteor.
My initial mission was to give AngularJS a spin to build this project, but when MeteorJS was recommended instead, I was impressed with it to say the least--and that was before version 1.0 was released just last week. It seemed to do all I could envision I needed it to do for my project, and more.
So what is Meteor? A serious performance boost, for one.
A JavaScript framework that works on top of NodeJS, Meteor allows the user to create a full application via HTML, CSS, and JavaScript. There’s no need for a server side language such as PHP or Ruby, because Meteor keeps everything in JavaScript. One language to rule them all (cue cheesy LOTR GIF).Here, I’ll operate under the assumption that you have no idea what Meteor is or does, so here are a few of the highlights:
- ReactiveChanges to data are automatic. Yes, truly automatic. No refresh or reload required. This is fully baked into Meteor, and you needn’t any additional code.
- Real TimeAll changes are pushed instantaneously to anyone viewing the web app/site. Think: chat application, one user edits/manipulates data on the website and content is updated immediately for any user viewing this same page, without any browser refresh.
- Single-page ApplicationInstead of reloading the entire page each time a change or a new page is requested, it reloads only portions of the page that are necessary to complete the request.
- Smart PackagesThink of these as modules or plugins that carry out specific pre-defined tasks and can handle aspects like routing, API authentication, and analytics. Smart Packages are added with a simple terminal command:
meteor add SMARTPACKAGE
(ex:Meteor add accounts-base
). You can view the list of added plugins with the command “meteor list.” - Minification / Preprocessing / ConcatenationWhile many of us have grown accustomed to different preprocessors like Sass or LESS, or more full service like Grunt or Gulp, this is handled natively in Meteor.
- Built in CLIThe CLI is for creating, adding, manipulating, and deploying Meteor applications.
But then again, I do have my gripes.
I’m insanely impressed with Meteor, thus far, for a framework that only just officially released 1.0 last week.As for the qualms, I’d love to see more object literal notation when writing MeteorJS code. Currently, I have to change the way I write JavaScript to fit Meteor, and I’m not particularly a fan of this.Documentation on many of the important Meteor packages doesn’t really exist. The best way to figure out how to use them is to find third-party tutorials. Meteor asked developers to update these readmes before the official release, but clearly that’s going to need to happen after, too.And last, deployment could be a bit easier. Meteor, consider acquiring MUP (wink wink).
Coming soon: the nitty gritty.
So some of you gung-ho readers may be wondering--where’s all the code? What happens next?In a couple of weeks, the inevitable “part two” of this love story will be published as an instructional video detailing the steps to developing a Meteor app. As more dev folks foray into exploring with this framework, I’d love to make myself available for any questions that arise, and better yet, any improvements that can be made!Until then, give gitcommit-m a whirl and see Meteor in action.$ git commit -m “Aaron out”