Meteor App Showcase: Mindmeld, a Real-Time Issue Tracker
The mission of Discover Meteor has always been enabling people without any Meteor knowledge to write their own app as quickly as possible.
So when Daniel Crowley-Wilson told us he was able to code his own Meteor app after reading our book, we were thrilled to know that we had reached our goal. We were also very curious to learn more about Mindmeld, the issue-tracking app he had built.
I got in touch with Daniel to ask him how exactly he created Mindmeld, and how the book helped along the way.
Sacha: First of all, can you introduce yourself?
Daniel: I’m an Aussie web developer living in Tokyo. I’m bootstrapping my own web apps in my spare time, as I work days as a software engineer in the financial industry.
I came to Japan almost three years ago. First, I joined a web startup. After about six months it closed up, but I made some great friends and learned a lot about startups in Japan.
Since then I’ve been working as a java developer in the financial industry. I work in a team that supports a global trading system. It’s a big, complicated system, but I enjoy tackling the challenges that creates.
How would you describe Mindmeld?
Daniel: Mindmeld is a realtime collaborative issue tracker. Team members in any location share a common view of projects, features and issues.
You receive notifications of project activity in real time, within the application. Mindmeld has a simple workflow that is intended to get out of your way, and let you get on with building your software.
How did you get the idea for Mindmeld?
The idea was born out of many frustrating teleconferences at work, where we would report on statuses using Atlassian’s Jira.
Everyone would sling urls at each other by emails or IM, and you never really knew if you were looking at the same view as the other person. When someone made an update they’d say “hit refresh”. And the amount of configuration and hoop jumping you have to do to use Jira really annoyed me.
I wanted an issue tracker where I knew everyone on my team was looking at the same thing, where the updates were instant, and where the level of protocol & formality was lowered to something reasonable that would suit a team of hackers. So, I started writing Mindmeld.
Looking for the Right Framework
Did you try other frameworks besides Meteor?
I started with Angular, which seemed ok. The scoping rules were a bit complicated for me (I’m not a CompSci major!), and the documentation was very dry. Eventually I realised the style wasn’t to my liking so I decided to write my own from scratch.
After a few weeks of that, I realised I was wasting time without a data binding framework, so I started to play around with Knockout. I really liked the simplicity of the MVVM model; I briefly compared it to Ember but found Knockout to be much easier to get my head around. I worked with that for a few weeks, but then I hit another wall - socket comms. Socket.io seemed to do everything I needed, but now my code base was getting more and more complicated.
At this time, I saw an article about Discover Meteor on Hacker News. I had previously checked out Meteor, but after watching the video demos on their site, concluded that the framework was too limited, and wouldn’t give me the control I needed. But people were saying good things about the book, so I checked out your site.
Reading the table of contents gave me hope that there was more to Meteor than I thought. I figured I would plonk down my cash, and go through the book in a weekend. I’d already spend many weekends trying other frameworks, so it was worth a shot.
How did the book help with developing the app?
I found the book to be exactly what I was looking for. The chapters move through the key topics at a fast pace, and I was very happy that I didn’t have to slog through 500+ pages, like most programming texts. I’ve heard some say that they think the price is high for an ebook. For me, the concise editing alone made it worthwhile. I still go to the official Meteor docs site frequently, but the book gave the basics I needed to understand what makes up a Meteor application.
Since reading the book, I’ve spent about three weeks of weeknights and weekend making my app. I have my base functionality almost down, and I’m looking to launch the product within a month or two. The two remaining things I need to do are integrate the payment functions with the user accounts, and find somewhere decent to host.
Since I’m a one man shop, I don’t have time to maintain servers and would like to use a PAAS. Heroku is ok for dev, but the lack of sticky session support / one dyno only is not going to be enough for production. Nodejitsu’s plans look promising, but a test build I tried seems to choke on installing the fibres package running on Smart OS.
One of the most innovative features of Mindmeld is its “follow-me” navigation mode. How did you come up with this?
Follow-Me navigation comes from a problem I have today with issue trackers. When I’m working remote and talking with a team member on the phone, I wanted a way to get to the same page as them, without flinging urls back and forth over IM or email.
Follow-Me is always available within Mindmeld, and lets you automatically navigate to the same page as your team member. It makes navigating a big set of issues a breeze.
Did you encounter any specific difficulties with Meteor?
My biggest stumbling block with meteor was understanding how the pub/sub system works with collections. It works well in simple scenarios, but gets confusing with multiple publications on the same collection.
How would you like to see Meteor evolve in the future?
I think Meteor has a good feature set now, so I wouldn’t want to see it get too bloated. The more mongo functions in minimingo the better though, and that goes for the handlebars implementation as well.
Thanks to Daniel for answering our questions. Mindmeld is now in private beta phase, so go ahead and sign up to get access soon!