I'd like to reach out to the community on this one. As a software developer, I'm not an expert salesperson or marketing guru - I think in code and not much else. Most developers I come across are like this and also tend to be serious penny-pinchers. Let's say, as a developer, I recently released a new software product that I'm pretty sure will be a hit IF people only knew about it. Assume a budget of $0.00 and limited time each day (i.e. 30 to 60 minutes). What can I do, within those limitations, to maximize exposure?

If possible, please back up your reply with at least two working examples.

  • 10
    A large company spends no more than 20% of its revenues on development costs, of of that, about 20% would be direct programming costs. Thats no more than 5% of revenues on programming. You need to understand where that other 95% goes before you have a software product, rather than a piece of software.
    – mattnz
    May 26, 2012 at 22:10
  • 1
    What kind of application is it? Who is your target audience? If you're targeting programmers, you could mention it on Hacker News (got the idea from Jeremy Heiler's post).
    – user55019
    May 27, 2012 at 0:11
  • 1
    What's your goal? Do you want to release the software to make money (ie create your own company)? Or do you want to release the software for free and want community adoption?
    – RonE
    Jun 5, 2012 at 17:40
  • 4
    this question is more appropriate for answers.onstartups.com; as you noticed, most programmers don't know much about marketing, so you're probably asking the wrong group for advice. but good luck anyway! Jun 5, 2012 at 20:12
  • 1
    Take every opportunity (including this one) to promote your product and web site - I can not be sure which one of the 100's of "Cubicle Software" products that came up in Google is yours - if any - start by coming up with a unique (at least, less common) name. Why is your website link not in your profile?
    – mattnz
    Jun 8, 2012 at 3:32

3 Answers 3


Your Own Site

Build your OWN site to distribute your software. It needs to have a home. This can be the code hosting repository where you host it and its development, but you could have a more customer facing site, and have them link to each other.

Your own site comes with additional elements:

  • your own chatroom(s),
  • your own newsgroup(s),
  • your own mailing list(s),
  • your own social network business page(s),
  • feeds (RSS/Atom) for your update channels (and some of previous points).

Notice that you can have several ones for different purposes: to talk to developers, make announcement, take care of customer support...

One point though: it's better to have one active point of communication than to get dispersed and have no content and no activity at all. It's the chicken and egg thing, but people are less enclined to ask questions on an empty forum. It's understandable to want to reach out to as many users as you'd like (we all prefer one medium to another), but wait a bit before you set up that Gopher site and an IRC channel.

Search Engines

Search Engines are the key element here: that's what everybody uses to find you. In the good ol' days (actually, the dark ages, really :)), you used to have search engines that were actually mostly keyword-based directories, and you had to submit your site to them individually/manually, or using so-called "search-engine auto-submitters". Some were relatively good, some would get you blacklisted easily.

Nowadays, I'd recommend you do 3 things:

Surprisingly, even Google still has pages to let your "submit" a site for inclusion, but usually that won't be needed. Feel free to also look for other directories and less known search engines to check for your inclusion in their databases. It's a good thing to regularly check where you are.

Software Distribution Sites

As mentioned by stmax in comments, the easiest way to start promoting an app that targets known mobile devices would usually be to use their dedicated app stores. It's rather quick and easy.

Depending on your platform of choice, and whether you want to sell your app or not (and if it supports in-app payments or not), you may want to to look at package management systems. This somewhat similar to software distribution sites (in that they aggregate software distribution in one place and) and app stores (in that they allow one-click install), but usually you only use them directly from you system (and not from the web). A famous example is the debian packaging format, and its mainy repositories and front-ends (which includes the Ubuntu Software Center, for instance).

Social Networks

You can use social aggregators to make things easier to deal with, or at least to make it easier for your users to then enhance your popularity on several networks, for instance with ShareThis or AddThis.

Communicate Actively

This can take some time, but not this much if you're efficient and have things well prepared.

  • communicate on forums, chat rooms, newsgroups...

    • DO NOT be spammy,
    • DO answers that relate to your software, give full disclosure in a proper way, and kindly point people to your software when they request alternatives or solutions.
  • broadcast updates and news to your different communication streams above, tweet about them, tell your friends on FB, publish an announcement on appropriate mailing-lists:

    • when you publish a minor revision,
    • when you have a potential project or feature in mind and need feedback,
    • when you reach a milestone (# of downloads, # of users...),
    • anything, really.

Of course, broadcast these to your communication channels described above.

Write Support Material

  • Write user and developgment guides accordingly.
  • Publish video tutorials or demonstrations (create a Youtube and/or Vimeo channel).
  • Write tutorials on how to use your software.
  • Publish a (tentative) roadmap for future features.

Get Reviewed

  • Friends can review you on their blogs and social network pages.
  • Users can review you and you can facilitate that by adding "talk about MY_PROJECT on SOCIAL_NETWORK" link.
  • Professionals (bloggers, writers, developers...) can review your app, for free or for a compensation (this is a possibly spammy route, beware to contact the right people).
    • Contact newspapers and technical magazines, online and offline (print is NOT dead). Some might want to write an article on you, some will just write a small column, some won't but will remember your name and product later, and some might just talk about your product to some friends at the bar.

Engage your Users

  • Request feedback, and permission to publish it, via:
  • Listen to feature requests.
  • Request your users' help in promoting your software.
  • Request your users' help in identifying flaws and troubleshooting in your software.

Personally, I'm not a fan of the user feedback sites like GetSatisfaction and UserVoice. They tend to slow down your site or web-app, you need to rely on them and if they break they may break parts of your site, and are generally more prone to downtimes than a good old mailing system. So I prefer a mailing-list/newsgroup, maybe with a web-interface as well (like a Google Group), and a simple contact form for the basic user. An issue- and/or bug-tracker is good to have for more advanced users (use one hosted on Google Code Project Hosting, BitBucket, GitHub, Sourceforge, Assembla... depending on your licensing terms, of course) and to let them know about the progress of a feature request and vote for the most requested features or bugfixes).


All of the above is advertisement, really, but obviously some more professional advertising can help. And even a 75USD AdWords voucher can go a long way, if you play it right.

You can go further and contact some services that manufacture and sell promotional items for you (mugs, t-shirts, caps, ...). This seems a bit nutty, but some users are happy to have some, and this does sometimes help to reach out to new users. Just make sure to pick the right services, where you won't need to pay much, or anything (some just take a commission on sales of articles).

Stay Up to Date

Publish updates often and communicate about them. Before you know it people will follow suit. Publuish beta-testing versions of upcoming releases, for advanced users only.

Also keep up with competitors and eventually review and compare them. DO NOT be derogatory or pejorative, be fair, do not twist numbers, and point our where you fare better. We don't expect you to to point ou your flaws, but to state what's the small "plus" you have over them.

Zero Budget, 30 minutes

All of this looks like a lot of time and even like it involves some money. But you can do most of it for no cost at all, or very low cost.

If you register for AdWords / AdSense / Google Webmaster Tools, you might eventually get a free voucher, or some friends might have one to spare. Technically this is money, but you didn't actually pay it, you're not down anything.

You can find free hosting services (even Blogger would do) for simple sites with (originally) low to medium traffic, and domain names can be found for very cheap value per year.

And all the communication, while it can be expensive in terms of time, gets better over time:

  • Write out templates for your release and update announcements for your mailing-list, your tweets, etc..
  • Make sure to program said updates to be broadcasted automatically to your different commication channels. Automate this as much as possible. It will be worth the time saved over the longer run.
  • Giving a little of your time every day or every week amounts to a lot in the end, and it's generating constant noise that matters to keep conversations going. And your friends and die-hard fans can help with this as well.

It's important to remember that every single new visitor and new recommendation counts. Whether it's someone publishing a full-page article about you, or just a friend sending a link to your app to another friend or talking about your product over a drink in a bar.


Put these 30 minutes a day to good use by learning the tools of the trade and the techniques of SEO experts, marketers and advertisers. They are, in the end, valuable skills and knowledge to have.

I remember omeone saying on another StackExchange site you should set apart 5 years of your life to learn them. Though I'd say it really doesn't take this long, there's obviously a lot to learn and various levels of expertise to obtain, but you can learn a great deal.

I'm sure as a developer you'll be happy to learn the more technical bits (like how to create pages that are SEO-friendly), relatively less happy to learn less technical bits (how to produce user-friendly page layouts, based on actual and tested HCI concepts and marketing research, not just programmer's instincts), and a lot less happy to learn the "annoying" bits that relate to marketing and advertising (picking keyword lists, writing good announcements, etc...). The motivator, for me, is to always view it as something technical, in the end: what you want is optimize the visibility, and all this because purely a game of numbers. Learning to write and design decently is just a mean to get these numbers up. Plus I find it interesting to learn UI and UX concepts, for which "lambda" users often have very different expectations than the programmers of an application (hence the need to request a lot of user feedback, and to listen to it).

Stand on the Shoulders of Giants... Be a Copy-Cat

You're not the first person to try to promote a product. Pick a famous product, and look how they did it. How do you get access to this product when you start from 0? Ideally, you want to be able to allow users to do the same with yours. That's what you aim for. Maybe look at some influential commercial or free software project, and look how they created a community, how they communicate around their product. You can try to find innovative ways of promoting yourself (and it's usually good to innovate, to stand out of the crowd), but the good old and tested ways work well, obviously.

Measure, Measure, Measure

I said two things I need to repeat here:

  • Listen to your users;
  • It's all about data, not about what you think you know as a programmer.

You can't improve things if you don't know what doesn't work or what is a better alternative. Learn (see above ;)) to use analytics systems (like Google Analytics) to track basic stats about your visitors (population demographics, origins, platforms ...) and more advanced reports (conversion rates, funnels...). Use such tools to measure the impact of changes you make to your site, and get real hard data to be able to know whether a change is beneficial or not.

I've done personal mistakes like this at first, believing my vision was better, and I've had (and still have...) to deal with startup founders who always start 83% of their sentences with "I think that...". No you don't. If you really "thought", you wouldn't say that. You assumed, and that's a bad habit. Usually, when someone says "I think", I now follow up with "prove it", or if I can't and don't believe their claim, I will go do my own hallway testing to prove or disprove their assumption.

A/B testing just works.

Of course, all this also takes time. I'm giving you the tools here, but just do with what you can with your own constraints. You don't need to A/B test every single scenario, and you don't need to re-evaluate every week every single little thing you do. But the more you do it, the better.

All of this meant to consolidate the prevalence of your software's own distribution site.

Your goal is to promote it, and to then allow users to find all the necesasry and relevant information on your site, and to minimize the path to a download.

  • This is a very well thought-out answer. I've only briefly read it but it looks good so far. Jun 7, 2012 at 12:33
  • +1 for being one of the most in-depth answer I've come across on Stack Exchange that doesn't come off as preachy or condescending Jun 8, 2012 at 8:09
  • 1
    I've gone ahead and marked this as the answer but I'm sure as you think up new things to write, you'll go ahead and add them. You've definitely earned the reputation points and bounty. Jun 8, 2012 at 12:01
  • +1 but way too complicated. Should just upload it unto the store of the bitten apple.
    – stmax
    Jun 10, 2012 at 1:44
  • @stmax: I thought of that indeed, but that's mostly for mobile apps or browser extensions. App stores are not that pervasive for desktops, except if you consider the software distribution sites above as app stores. If the app is free, you could also consider distributing packages to known package management repositories.
    – haylem
    Jun 11, 2012 at 16:38

Depends on what your product is and what your market is.

If its commercial grade, shrink-wrap quality and for download, then like all the other "micro-isvs" out there your need to get in front of your potential customers eyeballs.

Step 1: You need a web site, very carefully put together, which sets out what your product does and the features, benefits, and its cost.

Step 2: You need to drum up viewers. You will need to spend money. Pay for some Google ads - set a sensible budget. You can also find potential customers, or classes of customers. Find the web sites or user forums where they already go, and see what you can do to post in there about your product or purchase advertising. Watch out for policies that forbid plugging products in these places, though, you might get banned.

Step 3: Give away some copies, to try and get interest / conversation.

Example: Suppose you had some new photo processing software... then that tells you where you should be directing your initial sales efforts. There are lots of photography forums and web sites.

If you have trouble developing a web site, then there are plenty of people out there who will do it for a fee.

You said in the OP that you have a budget of $0. If you are not prepared to spend anything at all, you will almost certainly fail. You need to spend money to make money.

  • I disagree, you don't necessarily need to spend money. I've made successful launches for very close to 0 budget, not counting time expenditures. The only one thing I find hard to get for free are domain names.
    – haylem
    Jun 7, 2012 at 11:24
  • 1
    @haylem If you have had previous successful launches then you should be financially well off to the point where you are not laboring over an $8/yr domain name. I find your point incredulous.
    – maple_shaft
    Jun 7, 2012 at 11:29
  • @maple_shaft: except it you didn't plan to make money on any of these. Some were freelancing missions for universities where I was just producing portals for them, and were the whole point was just to generate awareness. It may not always be a commercial product, it's still a product. I also didn't say I was the one making money off of them (unfortunately).
    – haylem
    Jun 7, 2012 at 11:31
  • @maple_shaft: but sure, you're way better off if you can spend some on your promotion, of course. I won't argue about that. It's just not a necessity, and it's something the OP pointed out clearly in the list of things he wants to avoid.
    – haylem
    Jun 7, 2012 at 11:32
  • @maple_shaft: in fact, it's much harder to defend the "limited time" constraint than the "limited budget" one, IMHO.
    – haylem
    Jun 7, 2012 at 11:33

Note: I assumed your "software product" was an open source project. If not, ignore my answer.

Other than using it yourself and promoting what you build with it, I suggest you announce the project on mailing lists and other communities that might find it useful or interesting. If you haven't already, put your code on a site like GitHub or Google Code so people can easily find it. Take advantage of the social features of these sites like easy forking and sharing. The other advantage of that is then you'll have a location for people interested in the project to gather and collaborate. Do everything you can that will make it easy for others to promote it for you.

Not the answer you're looking for? Browse other questions tagged or ask your own question.