Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

After writing a few (relatively obscure) OSS frameworks, I've learned the hard way that writing a good framework isn't enough--there has to be some time spent marketing your framework as much as the time you spend coding it. So here's my question: What are some effective ways for making your OSS project become well-known? Aside from blogging, how do I gain the most market attention for my code with the least amount of effort as humanly possible?

(EDIT: I'm a lazy programmer and I hate documentation, but I'm biting the bullet. I want to be famous)

share|improve this question

closed as not constructive by gnat, Martijn Pieters, Oleksi, Walter, ChrisF Mar 24 '13 at 14:25

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Check out the answers I got here programmers.stackexchange.com/questions/14033/…. Some of them are quite decent. –  Yar Nov 2 '10 at 14:10

7 Answers 7

Start making some friends with larger voices than yours.

Social networking is a great tool for this: influential people on Twitter, Facebook, Buzz, what-have-you love sharing new and interesting things their followers might enjoy. The novel link is like currency. So, think about people who are popular and have a large audience and would be interested in your work. Then, just let them know about it.

To facilitate this, you should be treating your project just like you would a startup: come up with an elevator pitch that succinctly describes what it is your project does, what problem it solves, and why someone should care. A blog or some sort of record of progress over time is also valuable, as people who are interested in following a project generally want to see how it evolves just as much, if not moreso, than the project itself.

9 out of 10 times if you're not spammy about it, realize you're talking to a person who is just trying to find something cool, and your project is interesting in its own right, they're going to talk about it to others, or at least link to it.

share|improve this answer
  1. Write something awesome.
  2. Package it for as many distros as possible.
  3. Document, document, document.
  4. Lower the barrier to entry for new contributors as much as possible. (Make sure anonymous users can file bugs, make your source tree easy to find, etc.)
  5. Do a talk at a local user group (quick overview followed by a how-to seems most effective) or two.

In general, new open source toys spread like wildfire once a handful of people are convinced they are awesome.

Frameworks and libraries are a bit slower on the uptake, though, because once one chooses something as a dependency, one has something to lose if it becomes unmaintained or goes in an icky direction. Forking costs time and attention that most devs would rather spend on their project than their project's dependencies.

In my experience, the fastest way to build trust for a library, framework, or other things that have value primarily as dependencies rather than stand-alone projects is:

  • Have great DX (dev experience). We're a lazy bunch, and we take the easiest-to-use tool whenever possible.
  • Create and use something that depends on the library/framework. This shows that you are invested in keeping it healthy over time.
  • Have more than one maintainer. In the open source world, anyone can fork if you lose interest or get hit by a bus. However, if either no one is prepared to take the hand-off, or multiple forks appear while the rest of us are attending your funeral, there's chaos and upheaval that will be a giant PITA for anyone relying on your framework. There should be more than one maintainer, and there should be a public note somewhere re: continuity, along the lines of "if I appear to be dead, MIA, abducted by aliens, or otherwise permanently unavailable, Joe Schmoe (Schmoe@example.com) is to succeed me as the BDFL of Project Foo".
  • Create a space dedicated to showcasing awesome things that have been done with your framework.

In other words: show potential users that your framework will still be around tomorrow. This means demonstrating not just its usefulness, but that you and others are invested in continuing to develop and use it.

share|improve this answer
  1. build something interesting
  2. show the world what's interesting about it. Make screenshots, write tutorials and documentation (more than only the API reference)
  3. be friendly and open
share|improve this answer

If you are referring to LinFu - the library has an incredible amount of promise! I was very excited when I first read up on it, in particular its AOP parts.

I tried to mess about with it, but I couldn't get the latest version to work. I couldnt find any documentation beyond the CodeProject tutorials - which were out of date. Then, being a lazy programmer myself - I gave up.

Every so often I do a search on Linfu to see if there have been any updates - and if there is any new documentation about.

To attract the average programmer like myself, it needs to be easy to start using the library. This means it has to work and it has to be simple to start - either through documentation, or through simplicity of design.

You may want to consider setting up a homepage to act as a centralised place where the documentation, future plans, feature requests can go. This would help give me faith that the library is an active one this isn't going to go away and I can take seriously.

Funky graphics do help here too! The main reason I use Ninject is because I like the ninjas they have on their site.

Linfu has a lot of potential and could easily turn you into a .net God with just a bit of extra icing on top.

share|improve this answer

It's less about where you post, more about what you post.

People fear that trying out an unknown framework will be a massive waste of their time. Reassure them. Use screenshots to show them that it will be easy. Give a step by step guide that shows promise of being able to do your 'hello new-framework-world' within moments of downloading. Show that any pain will be worthwhile by killer examples. If you can run a space station with five lines of code using your framework, show them the code to do it.

Once people know it will be worthwhile they'll do the download.

share|improve this answer

Write it and they will come. In the OSS 'market' it is generally quality that rises to the top. It is thankfully free of bluster and hot air.

share|improve this answer

All of the above + read Producing Open Source Software

...a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software. The book is released under an [open copyright](Producing Open Source Software)...

Paper version is available, as well as online at link referred above: html, EPUB, PDF etc.

share|improve this answer

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