As I mentioned a couple of days ago, there are a lot of logistical questions related to getting a small software business off the ground. Even if you've got a good idea for some software, and it's one you can execute, sooner or later you run into questions of how you get people to know about it, how to actually sell copies, how to prevent people from stealing copies, etc. Today I'm going to go into the answers I found to some of these issues.
This post turned out to be much longer than I anticipated, so click "read more" to see the full version.
Get to Know People
The best source of answers is other developers. These days one of the best sources of information for a budding developer is blogs written by other developers. If you're not sure who they are, try visiting CocoaBlogs and running through the links until you find some you like. Try to post interesting comments on posts when you can, because blogs are not supposed to be a one-way medium. That'll also help getting other developers to know you.
If the blogs aren't hitting the topics you're wondering about, try the Mac Software Business mailing list. This was started a few years ago by Brent Simmons (see, there's one of those developer blogs) as a resource for software developers who have business concerns. There's a lot of good information to be had, but keep in mind that not everyone who writes authoritative-sounding messages actually has the experience to back them up. But then I guess you could say that about any discussion group, online or off.
Don't post business questions on Apple's Cocoa-Dev mailing list. The moderators there hate that.
If you're lucky there's a CocoaHeads chapter near you. Go to their meetings. If you're not so lucky, start your own chapter (it's easy). Once you get the word out a little you'll probably find there are more Mac developers near you than you might think.
Getting the Word Out
You've just written the best application ever. How do you tell people about it? There's a surprising amount of publicity available online for free these days if you know where to look.
First, you've got to be in the major software-indexing sites. I'm thinking of VersionTracker, MacUpdate, and i use this. There are others, but those are the biggies. I don't have an inside line on how they operate, but an update on one will often just "show up" on the others. And once you're listed, they'll find your updates if you let them. Some developers use this as an excuse to slack off and not post new versions themselves. But I've had a few cases where one or another site came up with their own update and got key details wrong, so I always make sure to get my own version posted as soon as I release a new version.
If you're interested enough to be writing software for Macs, you probably already know some good Mac news sites. They all want to know about interesting new software, so be sure to get in touch with them. If you're not sure which sites to try, check out MacSurfer and see which ones might be appropriate. Also try TUAW, which for some reason isn't on that list. Press releases can be good here. You're probably sending all of these sites the same information, so follow the established formats for doing so.
Relating back to the previous section, another huge source of publicity for software these days is getting mentioned in an influential blog. You'll get better results with this if you've taken the time to get to know some of the people writing those blogs. You can try just writing the authors out of the blue, but as in so much of life the interpersonal relationships you cultivate are paramount.
Print media is harder to crack for a small startup. MacWorld's Mac Gems column is probably the most likely to notice, if your app is cool.
Your Web Site
None of that publicity is any good unless you can send people somewhere.
Web design is a whole world of its own, and I won't spend any time on it. Except to say that having your site look professional really does count. It's got to look nice, and it's got to be well written. Don't settle for a half-assed job. Hire someone if you can't do this yourself.
Be careful choosing where to host the site. You need reliability. There's a more or less infinite number of options for getting a site up, but keeping it up no matter what, and keeping it going when a billion people suddenly must have your application, that's not so common. I host with Pair, and while I've had some issues with them, I can't argue with their reliability.
Don't put your business on DreamHost. They have very appealing plans, but I've heard way too many stories of sites unexpectedly going down for a week. They're good for some things, but not for hosting a business you hope to live off of.
Getting Paid
Now that you're dazzling everyone with your app you'd probably like them to buy it.
The main options are order-processing services that can handle the entire sale process for you, or simpler payment-processing options that just pass the money along and leave the rest to you. The first will cost more but provide a wider range of services. The latter will cost less but leave more work for you.
In the first group are companies like eSellerate. That's who I work with. I take flack from other developers because the service fees are higher than some other options. I went with them initially because they provided a lot of what I needed to get off the ground-- not just credit card processing, but handling of sales taxes, distribution of serial numbers, etc. I could pay less, but probably not for a service where I can get my account rep's attention via iChat any time I need it and know that he'll take care of any issues that might arise.
There are a number of companies in this field, many of them now owned by the Borg. Err, Digital River, that is. Check out RegMatch to compare options.
You can also use PayPal, if you don't mind doing some extra setup on your own. You'll need to set up your own web store, among other things, but if you're good at that then by all means go ahead. A relatively new option to going with PayPal is the Potion Store, an open-source Ruby on Rails app from the Potion Factory (hey, another developer blog!).
Not Getting Robbed
To help make sure people who use your software will pay for it, instead of just "evaluating" it forever, some kind of trial period or mode and registration code is generally a good idea.
It's important not to go overboard though. You don't want to make it too easy to just use your software forever without buying it. But at the same time you don't want to go to the other extreme of completely locked-down extreme security either. It's true that there are people who will try to use your software without buying it, and developers starting out have a tendency to obsess over this. I understand; you've worked long and hard, and you don't want to get ripped off. And when you're starting out it can be hard to project how much of a problem it's likely to be.
The problem is that you'll never stop someone who's really determined to crack your trial or registration schemes. And if you try, you'll (a) waste valuable time that could be used in adding cool new features to your software while also (b) treat your honest customers like thieves. Your goal should be to make casual piracy too difficult to bother with while not getting worked up over someone who'll do anything to crack your app and who has nothing better to do with their life.
Implementing a trial mode of some kind is necessary. You want to get your software into people's hands and get them using it, so that they'll want to buy it. How to implement this is the subject of much debate, so check out the MacSB archives and see what you find. Some favor trial periods where software is fully functional for some number of days, or some number of times that the application starts up. Others favor unlimited time but with restricted use, on the complexity or size of a document or on the length of an audio recording. What's best will depend on the nature of the application. Just bear in mind that the goal is to get people using your app enough that they decide they've gotta have it.
Registration codes are then used to remove the trial mode limitations, whatever they are. You can write your own registration code scheme but it's not really worth the bother unless you're into that kind of thing. My current recommendation is to use Aquatic Prime, an open-source scheme based on RSA encryption. Nothing's perfect but Aquatic Prime is very good and not hard to add to your application.
Order-processing companies like eSellerate also offer serial-number generation schemes of their own, along with validation code you can drop into your application. These are also not hard to add to your app, but I'm not so sure they're a good idea. They work well enough, but it doesn't seem like a good business decision to have something so important to your application so closely linked to the order processing. What if they were to go out of business? With something like Aquatic Prime you're in control and can easily go elsewhere if you need to.
Further Reading
I used to read MacTech magazine back when it used to be more for developers and less for system admins. A few years ago they ran a series of articles by Dave Wooldridge (of SpiderWorks) on Software Marketing. These articles are now online at MacTech's archives (scroll down, and note that they misspelled his name as "Woolridge"). These articles are a little old but still more than worth the time it'll take you to read them. Check them out, you won't regret it.






Thu, 10/18/2007 - 03:56
Thanks for the article Tom. The bit about payments/licensing is, I think, one of the hardest for anyone to get to grips with. In fact, if you read the MacSB archives, there's a huge percentage of the mail threads dedicated to this topic.
However, you forgot to mention the #macsb IRC channel on irc.freenode.net! There's generally ~70-80 people on the channel at any time and I've found it really useful for bouncing ideas off folks (including you!).
Thu, 10/18/2007 - 05:32
Great summary, Tom, but you forgot to mention listing your software on the third party downloads page on the Apple web site. You can do that if you have an ADC membership (which all devs should, at least the free version). I get more hits from the Apple site than either VersionTracker or MacUpdate.
Thu, 10/18/2007 - 08:38
I agree with Iain. Great article, but leaving the Apple downloads site (http://www.apple.com/downloads/) out is a big mistake they give me 5 to 10 times more traffic than the others combined. Apple also has a product guide (http://guide.apple.com/) that you can advertise in if you're an ADC member.
Thanks for sharing your experiences!!!
Fri, 10/19/2007 - 14:50
Thanks folks for filling in the details I missed.
The IRC channel can indeed be a great resource. I generally hang out in #macsb, both to ask questions and answer them. As with any IRC channel it can get a bit noisy, but it can be a good place to get quick answers and to get to know other developers.
I should have mentioned listings at Apple's web sites, because many developers find them useful. They slipped my mind because for some reason they're not all that useful to me. They don't stand out in my server logs as a huge source of web site visitors. However most developers rave about them so I should have mentioned them. I don't know why I'm the exception on this one.
Post new comment