I'm really happy to announce today that I'm launching a new web application called Notifire. It's an add-on to the web-based group chat software Campfire by 37signals, and it's a great way to add live chat support to any website.
So, what does it do?
The best way to see it in action is to check out the video at http://notifire.me/videos, but it's essentially a way to constantly monitor a Campfire chat room and get an IM or SMS text notification when someone enters the room. The IM includes a link to the room so you can just click on it and immediately begin chatting with the person that entered.
Why this app?
A little while back I started looking for an easy way to add live chat support to my website. There are a lot of solutions out there, but they're all really robust solutions for larger companies that are almost more like call center clients - tracking when people are on and off line, who's available, routing IM's, etc. These are fine, but they're more than I really needed, require yet another chat client, and are usually at least a couple hundred dollars per year.
Campfire makes it really easy to set up a public chat room, but I would sometimes forget to open that room in a browser window. Or, if I had the window open, I would miss the little sound notification that appears. And that's really the "problem" I set out to solve. All I really needed was a slightly better notification for when someone entered a public Campsite room.
Notifire does exactly this, and if I do say so myself, it does it brilliantly.
The technology behind the app
There is one portion of the application that constantly monitors your campfire chat room. When someone enters, it sends an IM or SMS message by leveraging Tropo, an absolutely awesome single API by Voxeo that lets developers integrate Voice, text messaging, and "normal" Instant messages (Gtalk, Yahoo, AIM, MSN, Jabber and even Twitter) into their applications.
Basically, Notifire constantly monitors the room, and when someone enters the room, uses tropo to actually send the message to people that have been set up to receive them.
Behind the UI design
This is the second Ruby on Rails application I've built, and I'm really happy with how it's turned out. (If you follow this blog, you know I've been leading software projects for years, but just recently started learning Rails). I purposely made a very minimalistic user interface on the application, because the idea behind this app is really to make your existing UI's (IM client and Campfire) work just a tad bit better for you.
This isn't to say I didn't spend time on the UI. In fact, I spent a lot of time trying to get the main page of the app where a user sets up a robot (a room monitor) just right. I worked very hard to only show relevant information to the user, while also not requiring them to move in and out of a lot of different pages.
I also borrowed heavily from some concepts that I love on the iPad - that sometimes the best way to tell a user what to do is with words - not graphics. I'm certainly not the only one to notice this - and there's been a bunch of discussion on the web about it. So, I challenged myself to create a UI that used only words and text fields. No graphics allowed. (John Gruber wrote an article about studies that Apple has done on UI design that I wanted to link to but couldn't find. Know where it is?)
Special thanks to Voxeo
I was only able to build this app because of the great team over at Voxeo, the company behind tropo. Voxeo has been a client of mine for years, and I've always really loved working with them. When I told them about my idea and the app I wanted to make they loved it, and played a huge part in helping to make it happen.
The whole thing with tropo is that it helps developers make their applications better. Because Voxeo wants people to use the Tropo platform, they're happy to help developers with their apps. A guy named Mark Silverberg was assigned to my project - and working with him was just awesome.
I know I'm not exactly impartial. I have a relationship with Voxeo that goes back over five years. They were one of my first clients when I started Ideal Project Group and they remain a customer today.
But I wouldn't put it on my blog if I didn't mean it. The gang over there is great, the technology is awesome, and if you're a developer looking to add voice, sms, or IM's to your apps, you should really check tropo out.
It's version 1.0
The hardest part about launching an application is doing so knowing that some bugs are going to pop up. There are a few more tweaks that I'd like to make, and there are some things I know need to be done slightly better. Specifically, I want to add some javascript to one page to make activating a robot a bit smoother that it is now. We've also got to work a bit more on constantly maintaining a stream to Campfire. It's working great, but there are occasions where a connection has been lost and not restored. We're working on perfecting this - but I still felt the app was ready for a release today. In the meantime - trust notifire - but verify it's working every now and then.
I'll be working hard to fix any issues that pop up, so if you check it out and notice anything funky, please send me an email at andrew@idealprojectgroup.com.
A final word
Anyone who has read this blog knows that I'm a huge fan of 37signals. I recommend their products often, I've read their books, and they've inspired me in a lot of ways. I've listend to Jason Fried give talks about business, I've watched videos of Ryan Singer teaching web design, and I've taken to heart advice given to developers by David Heinemeier Hansson.
Because of this, part of me is worried that my application will just look like a cheap knock-off. As if it's just me trying to copy them and failing to do so. I hope instead though that people see an application that was inspired by them, but is still very much me. And, if introducing this product helps tell more people about their products that would make me really happy - because it'd kind of be a way for me to say thanks.
What this project represents to me is that very often the best way to make something new or better, is to simply connect a few things that already exist.
By connecting 37signals, tropo, and popular chat networks, I truly believe that I've introduced one of the best ways to add live chat support to a website.
I hope you like it.