These kinds of details (sales and marketing) are the real barriers to entry for SaaS businesses.
I wrote a post Last July about what I wanted from a JavaScript framework, and what was missing from the current options. We’ve been using Backbone.js for a project since last October, and it meets nearly all of my core needs. We’ve added some more tools in and around it to fill in the holes. Let’s take a look at my list of wants:
Let’s look at the missing ones:
Environments:
I made this happen for myself. It’s really not a very complex requirement, and not very hard to implement. I simply added an env key to the global app namespace, whose value gets written by the Rails app in our main app template. Here’s the code.
window.supermtter = {
env : '<%=Rails.env %>',
}
Assume supermatter is the namespace of our UI app. Now supermatter.env is set to our Rails env.
Templates:
There isn’t actually templating built in the Backbone.js, but the required library Underscore.js incudes basic templating support. In our current project, we decided to go with Handelbars.js, which I would probably not recommend.
Console Tools:
In retrospect, this isn’t that big of a deal. It would be nice, but isn’t a deal breaker at all.
Integration:
Backbone.js doesn’t really help with this at all, but a tool called Jammit (also by DocumentCloud, the company behind Backbone) certainly does. Our config for Jammit is written such that we really never have to think about including a file. Anything added to specific directories and/or matching filename patterns is included automatically. Here’s a snippet of our assets.yml:
views:
- public/app/views/ui.*.js
- public/app/views/*.js
With that, most of our needs are met! I’ll do a post sometime later detailing our app structure and how we use backbone. One takeaway so far: Backbone really is just that. It provides the backbone of a complex UI app, but you’re left to build out the rest of the skeleton yourself.
Back in June, I wrote a post about our search for web based accounting software. To recap: there wasn’t a best choice, so we decided to play with several better choices to see what fit. We also specifically expressed a desire to avoid Quickbooks.
After several months of trying the various tools and finding a CPA, we decided to go with Quickbooks Online. Ultimately, I would have preferred to support the little guy. However, the price point was competitive with a more advanced feature set, and our CPA was more comfortable with it. And, since we’re not doing most of the work, we can avoid the less than stellar user experience.
Here’s a story. There once was an architect who chose a location, drew up blueprints, hired a contractor, and then built a grand house, top to bottom. Then he painted it. Decorated it. Furnished it. And finally, when everything was completely done, showed it to the client - for the very first time.
“Here, I built you a house. I hope you like it.”
Can you imagine anyone working that way - building something from concept to finished product, actually launching it, before ever speaking to the person it’s intended for?
(Source: goodexperience.com)
Be productive.
Be fantastically clever when necessary.
Speak truth to power.
Hit your dates.
Don’t ship crap.
GitHub has a really great feature in commit comments that is perfect for a small, loose team like ours to do code reviews. We can look at a given commit and provide comments on a line or the commit as a whole. The committer gets notified, and conversation continues.
Let me explain a bit more about our review process. We’re a small team without much hierarchy, so we don’t have specific rules or guidelines about how a review should function. Basically, when we’re ready for someone else on the team to look at our code, we send them a message with a reference (like a GitHub link) to the relevant code. It’s more like “hey look what I did!”
To make that process a bit more streamlined, we’ve built a little tool called reviewth.is. It acts as an endpoint for a Post-Receive Hook from GitHub that parses every commit message. If it sees a #reviewthis hashtag, it’ll take every GitHub username (signified by @username) or email address and send a nice email with all of the important information.
So, our process has gone from:
To:
Minus 2 steps! Awesome! Feel free to use our hosted version at http://reviewth.is/. We’ve also open sourced the code, so you can fork it and roll your own.