Ask HN: Ideas on promoting an open source project?

66 points by lhorie ↗ HN
I released an open source project a few weeks ago ( http://lhorie.github.io/mithril/ ) and I haven't done much publicizing other than asking for some feedback here (which was great btw!)

It already has some 700 github stars, and I've been getting a lot of positive feedback, so clearly there's some interest in it.

I was wondering how do people here go about promoting their open source projects to a wider audience. Any ideas, tips, experiences? Thanks in advance.

29 comments

[ 3.3 ms ] story [ 78.7 ms ] thread
Probably the single most impressive marketing effort ever for a OSS web framework was the 15 minute Rails build a blog demo. It's slick, polished, has a clear connection to a use-case which potential users of a framework will find motivational, and shows off a lot of why you'd actually care about Rails. Unfortunately, the vast majority of OSS projects do not have that level of savvy in their marketing.

https://www.youtube.com/watch?v=tUH1hewXnC0

You might consider building a Mithril version for this, either for your todo list example or something with a bit more oomph to it. I don't spend enough time with front end developers to know what would be clearly amazing for them. (Multiplayer 2048 in 15 minutes, maybe?)

Regarding getting it to a wider audience: Conference talks, taking it around individually to people who should be using it, writing and writing and writing about it, creating complements of the OSS and using them as friendcatchers for it, etc, are every bit as effective for OSS as they are for paid products.

...and interesting enough rails hasn't produced a winning blogging software yet. that increases the success of the blog demo more.
IMHO i think that is more related to the platform(ruby) than rails itself.
There are many blogging platforms written using rails. Unfortunately rails, being a framework and web server, do not fit into the LAMP stack where you can host tons of blogs on one small shared hosting provider like WordPress/PHP does.
AFAIK nothing other than PHP or Perl has ever produced "winning" blog software.

Rails is actually not a great fit for mass-market blogging software, though, because it doesn't have very good support for theming.

Cross promote? Try to get a successful project using it done, or wait until one is, and hope they use a logo on their site.

You could approach a company that has problem x and say your oss solves x and see if they are interested in checking it out/funding it/whatever.

other ideas: good docs, irc channel, mailing list, youtube screencasts, books on the topic, blog posts on the soft, conference talkson it, etc

you could also just buy adwords -_-

Do you have a mailing list or forum for it? That's pretty common with open source projects as a place to interact with your users.
Write tutorials!

and comparison blog post are great, but keep it genuine.

You should do an Ask-HN post asking for ideas.
By far the best thing we did with Django in the early days was to have a beautifully designed site. I think a lot of people started using the framework because the site looked great.
Yes. The very clear website and documentation are what took me in.
Have you considered working with a designer to gussy up the site a bit? That could go a long way toward representing more legitimacy.

That said, I'm very impressed with what you've done, and I'll be passing this along.

Just registered to say that I've been trying out mithril throughout the week and some examples would be really helpful.

An example of multiple views being controlled by a single controller would be good, like the components page but more examples.

Its really cool though I like it

Front page of HN = OSS promotion complete. :-)
true ! but long term committment and the demonstration that the project can be used to create large applications IS also important.
IMHO, A website with a fresher and professional look never hurts, better documentation, a nice and easy tutorial that show the core and fundamental features of the framework. Pretty much, i am describing you how Django started, except with the look of their website, even though is easy to navigate in it, that thing needs a revamp ;).
You get promoted by asking for help on HN and having patio11 respond to you.
Highlight supported browser versions right away, especially if supporting older ones (otherwise this could actually count against the project)
Cleaver (http://jdan.github.io/cleaver/) got some good mentions in JS Weekly, and had a few blog posts written about it. 1100+ stars but I'm not sure if anyone's actually using it.

I continue to work on it because it's rewarding and I have an insatiable need to make quick slideshows.

I think a screencast would help your framework a lot. Something to highlight its awesome features.

Here's what I did to promote beets (http://beets.radbox.org) over a long period of time (3ish years) before it became "popular":

- Post to domain-specific forums where I thought people would be interested. That includes stuff like /r/python on and /r/music in my case, as well as the user forums for music-streaming systems.

- Build community. IRC, mailing lists, close collaborations on GitHub. Encourage people to become GitHub collaborators early to solidify their commitment to the project.

- Keep trying to delight the users I have. Other people's endorsements on Twitter, HN, etc. consistently work better than my own.

- Screencast. On YouTube so it's easily shareable.

- Patience. Relentlessly make the project better. This is far away the best thing you can do; over the months and years, people will notice.

I'm curious why you care? Seems like it has good basic traction (700 stars), so there are people out there. And you're getting feedback (good). Why push it faster than it wants to go? What do you hope to achieve by that? Integrate the feedback, add your features that you want to add, iterate and repeat. It will get big or it won't.

A lot of those "wildly popular" open source projects have been around for years if not decades. It takes time for things to filter into the brains of other folks.

All great points, but you can't fault someone for wanting more eyeballs on their project. In this case more eyeballs -> bigger talent pool -> more/better contributions.

But in general, as the old adage goes, don't count your chickens before they hatch. It's fine to spend a little time marketing, but I totally agree to focus your energy on your product with your initial traction.

I agree with the adage about getting ahead of your expectations but I'm not sure I understand the expectations. Why start an open source project if not for ones own edification and enjoyment? Is not the journey its own reward in this case?
I would say documentation and presentation are two big things you can put effort into having your project seen in a good light.

Also once you have that in place, its critical you get it in front of the right audience. i.e. talk to weekly newsletter guys or personally email influential people in the javascript (in your case) that are looking to try new things! Listen to their criticisms improve and iterate. Also empowerer people in your community of developers one man shows frameworks can start off well but don't last very long without building out a community.

As always, the helpfulness of the people here is really great, so thank you :)

I do have a mailing list here ( https://groups.google.com/forum/#!forum/mithriljs ), which I made a bit more prominent on the site just a few minutes ago, and some of us have been using the github issue tracker ( https://github.com/lhorie/mithril.js/issues?state=open ) for suggestions and general Q&A.

I have a few ideas of things I'd like to write about in more detail so I'll probably put an article out soon.

@ChuckMcM: there are a few good reasons to push on the marketing front:

- more popularity means more bugs found and fixed, and thus better software

- developing a community increases the quality of the ecosystem around the project exponentially. For example, one criticism I heard a few times at release was solved by a contributor before I even got the chance to take a stab at it ( https://groups.google.com/forum/#!msg/mithriljs/lGiNpog2mbc/... ). I feel that community involvement is a really important factor to take the project to the next level.

- semi-related to the previous point, many things on the project roadmap for example are things that anyone looking for a side project can pick up and do. Some don't even require you to know anything about the framework. I'm really put off by the high barrier of entry to contribution to projects like Angular, and I feel that giving people of all levels the chance to crank some code is a win-win for everybody.

- another related point: different people tell different stories. It's one thing for me to put out a lot of examples and reading material (which I do try to do w/ the docs on the site), but often, people do things that I never anticipated. They can write better, more focused articles and share them with audiences that I might not have even known existed. And even if they're just retweeting something I wrote, their social reach is different from mine: a lot of people that might find Mithril useful don't read HN, but they might hear about it from a friend that does.

- a somewhat unique reason to Mithril is that it has a pretty stable core already, and the project needs to move forward in some front in order for it to be seen as an "active" project.

Also, it's marketing 101 to stay on top of people's minds. If they keep hearing about Mithril from different sources, then they're more likely to spend a little of their valuable time to try it out and hopefully fall in love and join the community.