Monthly Archives: February 2007

First 75 days of Wii Transfer

In the tradition of other independent Mac developers such as “Mike Zornek”:http://clickablebliss.com/blog/2007/01/08/billable_the_first_100_days/, “Daniel Jalkut”:http://www.red-sweater.com/blog/191/lawful-prey, and “Gus Mueller”:http://www.gusmueller.com/blog/archives/2005/12/25.html, I’m going to share some sales information from the first 75 days of Wii Transfer.

The following chart shows daily sales (in units sold) for each day. I’ve also highlighted important milestones so you can see what affect they had on sales, such as shipping 2.0 (which brought many links) and increasing the price (from $9 to $14, which brought my first 2.0 day of no sales at all). Finally, there are a few spots where I show the average number of visitors.

Sales chart

(As an aside, I created this chart in Keynote. I love software that is simple and flexible enough to be used for purposes outside its original developer’s intentions. I wrote “more on this subject back in early 2006”:http://www.manton.org/2006/01/limitations_in_toys.html.)

It’s difficult to tell, but the numbers on the right side are on average a little bit higher than the left. Not by much though. Sales just trickle in again right now (a few a day).

So what does it all mean? Here is the basic take-away: Sales are much better than I thought they would be, but not nearly enough to live off of. That’s okay, because I happen to love “my day job”:http://www.vitalsource.com/ (also writing Mac software). However, I can definitely see how it would be possible to do this full time, with some real marketing and a collection of several additional applications. I have done zero marketing for Wii Transfer except listing it on MacUpdate, VersionTracker, and Apple’s download site (where it was featured in the video section).

As you can see, there was a big spike in sales when 2.0 was released. This is a direct result of links from Mac sites like The Unofficial Apple Weblog and Daring Fireball, and gaming sites like Jostiq and others. When traffic goes up, sales go up. This opened my eyes because it really is all about getting your app in front of other users. “As I blogged about previously”:http://www.manton.org/2007/01/wii_transfer_takes.html, I think I also missed some sales opportunities during this period because 2.0 was not very stable.

Other interesting stats: The conversion rate is between 2% and 5%. For every 100 downloads, a few people decide to purchase it. I think many active users probably end up paying for it. Instead of a trial demo period, some features are just crippled, and it isn’t very usable day-to-day without unlocking the full feature set (for example, with music sharing to the Wii, you can only play one song at a time — no iTunes playlists or shuffle).

There are at least a few pirates too. I’m not too worried about them because “you can’t stop pirating”:http://wilshipley.com/blog/2007/02/piracy-reduction-can-be-source-of.html, and most people are honest. One customer was even nice enough to tell me about a pirated serial number he found.

To everyone who purchased Wii Transfer, thanks! When I built 1.0, I wasn’t sure if I would work on it again. Now, several versions later at 2.2, I have a clear roadmap of features (and bugs!) to keep me busy.

Animation panel and web site for STAPLE! 2007

“Chris”:http://ycrtft.rethunkmedia.com/ and I headed over to Northcross Mall yesterday to take a final look at the conference center rooms before next week’s STAPLE! Expo. Although I’ve been on the planning committee since the very beginning of the conference over 3 years ago and actively involved for each of the previous 2 shows, this year is a little special because I’ve been organizing a panel on animation to complement the mostly comic book focused show. We have three great local animators this year: Aaron Romo, Evan Cagle, and Lance Myers. See the “STAPLE! guests page”:http://www.staple-austin.org/guests/ for more information on their work and our other featured speakers.

I also redesigned the web site last week, late Thursday night. In order to accommodate some CSS improvements and images from our new program, I had to abandon a few things from last year’s excellent design by “John Rubio”:http://www.johnrubio.com/ (who also did the logo). I hope to bring back elements of the old design for next year, though. There’s just not enough time in the day, and March is days away. I hate you February, for being so short.

Customer support

One of the most interesting (and difficult) parts of running an independent software business is responding to support email. It is very time-consuming and often more frustrating than writing code because the solutions can be illusive. You want to help the customer, but it’s not always obvious how.

Two blog posts in the last week take entirely different approaches to customer support. The first is from Ryan Carson, who is well known for DropSend and The Future of Web Apps conference. Here’s a snippet from his response to a customer:

I am now marking your email address as spam and your communication will no longer get through. If you don’t want to use our service any more, please cancel your account.

I was relieved to read the comments, which are more sane. I think Ryan made a mistake in how he dealt with the customer, and wasted a bunch of time in the process. Adding a customer to your spam filter? Yikes. I would have refunded the customer their $5 immediately.

(I actually like a lot of what Ryan writes and the events he puts on, but lately I find myself noticing the differences. As another example, his post about outsourcing programming work to Russia left me puzzled.)

Joel Spolsky also wrote an essay on support, and it’s just about perfect. I especially like his section on memorizing awkward phrases:

It’s completely natural to have trouble saying “It’s my fault.” That’s human. But those three words are going to make your angry customers much happier. So you’re going to have to say them. And you’re going to have to sound like you mean it.

For almost every support email I get, I start by responding like this:

Hi Bob, Thanks for purchasing Wii Transfer. I’m sorry to hear it was not working correctly for you.

This does three things right away that I think are important:

  • Greet the person by their name. Kind of like making eye contact. And it’s respectful without being overly formal.

  • Thank them for using the product. If they haven’t bought it yet, replace “purchasing” with “trying.”

  • Apologize that the software gave them trouble. This is mostly equivalent to Joel’s “it’s my fault” phrase.

Although I could probably respond faster by using some macro shortcuts that do this for me, I actually type this out every time, varying it slightly as is appropriate for the question. I then move on to the actual solution or follow-up question about their issue.

This is more than just trying to be nice to people. As someone in the comments to Ryan Carson’s post said: you need to show the customer that you are on their side. Going negative demonstrates that you care about receiving their money but not actually building something useful that makes their life easier.

Here’s a portion of 37signals take on being on the customers side, from Getting Real:

At 37signals, all of our support emails are answered personally by the people who actually build the product. Why? First off, it provides better support for customers. They’re getting a response straight from the brain of someone who built the app. Also, it keeps us in touch with the people who use our products and the problems they’re encountering. When they’re frustrated, we’re frustrated. We can say, “I feel your pain” and actually mean it.

Most people who buy Mac software from independent developers know that it’s only 1-5 people behind the company. We can’t compete with the Microsofts and Adobes of the world on application size, but we can compete on quality customer service. Being small is a competitive advantage.

I’ve exchanged at least a couple hundred emails in the last few months with customers or potential customers. (I don’t actually distinguish between users who have bought the product or who are just trying it out. They all get the same level of support.) Have I handled each one perfectly? Probably not. There are a few people who are still experiencing problems. But my hope is that just writing this blog post will serve as a guide and reminder of why taking support seriously is worth it.

Reflecting on a beta release and server testing

Wii Transfer 2.2 is taking longer to get ready than I had planned, so I’ve decided to post a public beta while the last pieces are polished up. You can “grab it from the news section”:http://www.riverfold.com/software/wiitransfer/ of the Riverfold site (lower right). It is very close to being done, but giant chunks of code have been completely rewritten. I hope the extra testing will help make 2.2 an extremely solid release, and get some of the new features in the hands of users as soon as possible.

So what’s new in 2.2? iTunes playlists and several new preferences to control picture sharing top the list, but there are at least a dozen changes underneath the hood.

The web server built into Wii Transfer has seen some work in particular. Music browsing now uses the iTunes Music Library.xml file for everything rather than look at directory contents, and you can change the port number on the fly without restarting Wii Transfer if there is a conflict with any other applications.

I’ve also added reflections to the album cover art! You can see a “screenshot here”:http://www.manton.org/images/2007/wii_transfer_cover.jpg and another one of “the collage for playlists here”:http://www.manton.org/images/2007/wii_transfer_collage.jpg (these are from Safari, but it looks mostly the same on the Wii). This was really fun to do, but unfortunately it somehow introduced a subtle double-release bug that I spent hours fixing. It would only happen if the album art could not be found in iTunes and while multiple connections were hitting the server (i.e. it was ultimately a threading issue), and maybe only every dozen requests.

I tracked it down by using ab (Apache Bench), pointed at Wii Transfer. I had a shell script with a bunch of lines that looked like:

ab -n 200 -c 4 "http://localhost:9000/m/Beatles.cover

This URL asks Wii Transfer to grab any album art from iTunes for The Beatles, apply the reflection and return the JPEG data. It is flexible because you can send it any search strings. Other examples might be: Evanescence%20Door.cover or Zoo%20Station.cover. I was a little surprised that my little server was actually pumping out pages fairly quickly considering all the AppleScript and Quartz stuff going on. 10-20 requests per second isn’t much for a real web application, but for an app that is by definition single-user, it’s perfect.

The reflection code was made even easier by “BHReflectedImage”:http://bithaus.com/2006/11/05/nsimage-reflection/, which I modified to work with black backgrounds and then wrapped up in other helper methods to composite the cover and reflection together. When I first ran across this code I didn’t even notice it was written by Jeff Ganyard, who I’ve known for years and still run into at WWDC. Thanks Jeff! This goes in the about box credits with a bunch of other mentions. There is a really active Mac developer community that contributes source pretty freely, and I hope to add a few things to that collection one of these day as well.

Spoiled by iTunes, and the future of music

I have been “iTunes-free for four weeks now”:http://www.manton.org/2007/01/goodbye_itms.html, and I hate it. It must be like quitting smoking, except without the fear of dying always at your back. I stopped by a Best Buy the other day and couldn’t find any CDs to buy. How do you shop for music without listening to it first? How do you find new artists without “customers also bought…” sidebars? Years ago I might listen to the radio to discover new music, but that was before the dial was permanently stuck on NPR.

“Steve Jobs dropped the bomb”:http://www.apple.com/hotnews/thoughtsonmusic/ while I was at lunch yesterday, and I furiously read and re-read it and watched the fallout. Blog entries in NetNewsWire lit up like clockwork. As “I posted to Twitter”:http://twitter.com/manton, when the balance tips again to user control we’ll look back at this as a real shift in thinking. And the reason you know it’s true is because it sounds redundant to say the words.

But today… I browsed for music on iTunes and then ordered CDs from Amazon.