Ask HN: How much time do you spend on “marketing” your open source projects?
I guess the reason to start an open source project is to scratch your own itch (or because you love doing it). But finding users who will try it or collaborate with you may require some type of marketing? So did you create time to do that or is working on the project reward enough for you?
If you have a popular open source project can you tell me a few things like 1) why did you start it? 2) how did people find it? 3) did you post it somewhere to get traction? 4) do you think it's unfair to just work on something you like but never take the time to get the word out?
70 comments
[ 3.4 ms ] story [ 105 ms ] thread1) Why did I start it: I started it because Kiba ancestor https://github.com/activewarehouse/activewarehouse-etl was crawling under its own technical debt, and I still wanted a way to express data processing jobs with Ruby, without having too much maintenance work on the ETL framework itself.
2) How did people find it: I wrote a number of blog posts at http://thibautbarrere.com (including one video), and also spent quite a bit of time working on documentation at https://github.com/thbar/kiba/blob/master/README.md.
3) If I recall well, I posted on the ruby subreddit, twitter, but also gave talks at conferences.
4) It's a matter of personal preference IMO!
To summarise, as marketing for an OSS project, I'm writing blog posts, detailed documentation, videos, speaking at conferences, and tweeting, mostly.
The ratio of all this vs. ratio of actual code in the project is actually very high.
To answer your specific questions, I'll take my most-starred repository, https://github.com/holocm/holo (47 stars).
1) I wanted to use configuration management on my private notebook, but all existing systems seemed to be optimized for much bigger use-cases and have a lot of moving parts that need to be understood. So I thought "It can't be that hard to just deploy a few config files." Classic scratch-itching. What a fool I was. :D
2) As said above, when the discussion happened to come to the configuration mgmt topic, I chimed in and noted that my tool exists. Also, I made a website (http://holocm.org ) for documentation and a Twitter account (https://twitter.com/holocm ) to announce releases, and retweeted the announcements into my private account to spread them.
3) I never did a "Show HN" for some reason. I did, however, give a lightning talk at the 31C3 (the recording is in the pinned tweet on the Twitter account, if you're interested).
4) How is that "unfair"?
Everything you do you do because of some sort of motivation. For me, my OSS projects are all about "I need something that works for me", so a working system on my machine is all the reward that I need. I do a small amount of publicity, such as replying here ;), but not because I need the attention. It's just a nice bonus.
I had to publizie it in the Ubuntu Forums where I got good traction: suggestions, appreciation, feature requests. It eventually made it into the Debian repo and now is in most distro repos including Fedora, Suse, etc.
I'd say it was equally fun for me to get the feedback and incorporate it back into the system. I enjoyed it as much as coding it.
Another little project I have is a bot for slack, this one was picked up randomly by a person on the internet who decided to do a better Readme.md version as a medium tutorial and got me traction...its pretty good for something this small and useful (I guess) If I were to make this worth marketing efforts, I would:
- self promote in quora, stackoverflow
- listen to relevant keywords in twitter and reply to those
- launch it on HN as a ShowHN
- find all relevant subreddits, contribute a little then self promote
- give a talk at local meetup community or lightning talk about it.
As you can see my suggestions, they match pretty much what you would do in non oss projects to get some traffic going Btw I loved this question
Yeah, I'm sure there are a few companies that don't spend money on advertisement. But those are probably allocating quite a lot of resources to making sure you know they're not advertising.
Advertising is making sure it doesn't stay there.
Look at projects like Docker -- it's built on the work of many other people, but they were too busy hacking on kernel patches to ever give talks and write end-user documentation. The result? Nobody knows what linux-vserver is or ever was, while everyone who is anyone knows what Docker is.
There are so many examples like that, and just as many counterexamples. It is a rare thing for an author to lack the human skills to communicate and still somehow have his work succeed, and usually it only happens due to their technical skillset, and oftentimes not even then.
per the questions:
> 1) why did you start it?
I took over as a maintainer when I wanted to use the application and bugs/missing features were an issue (IIRC it was without a maintainer for ~3 years).
> 2) how did people find it?
Originally the project was marketed via mailing lists/forums/blogs/software review sites/early youtube or pre-youtube videos/etc. After a few years it ended up being presented in an open source community conference. Currently a fair amount of web traffic comes from a few freeware review sites in addition to the general linux community which is spread over a larger variety of sites (and more difficult to pinpoint as most users are going to obtain copies from their package manager rather than the website).
> 3) did you post it somewhere to get traction?
The releases are posted to 2 forums, 2 mailing lists. It's original release was only posted to a single audio based mailing list (AFAIK). When working on fundraising bits were posted to 2 different other mailing lists and information was provided to 3 software review sites, one of which posted the information provided.
> 4) do you think it's unfair to just work on something you like but never take the time to get the word out?
Nope. You're spending your time working on something. If your goals align with having other people utilize your work, then by all means talk about it, otherwise there's no problem whatsoever with keeping it to yourself. Also consider that marketing for contributors and marketing for users are two (sometimes different) activities.
EDIT: I find it a bit misleading now that the website shows a screenshot of Zyn-Fusion (which is not open source) instead of ZynAddSubfx. It could be clearer what is what.
With the whole fltk/ntk vs mruby-zest(zyn-fusion) powered UIs situation the user can either be presented with a complex piece of information on the landing page or an oversimplified version. So far based upon general feedback it seems the oversimplified version is less confusing as when more information was put on the front page people didn't reliably read it.
I work as a freelancer and at the moment I do client work 3 days a week and dedicate the rest of the time to the open-source work. The open-source work includes doing research and implementing these tools, but also preparing the talks, which is a very time consuming task for me. Doing conference talks is very emotionally exhausting, I dread the previous weeks to the talk---but the feeling afterwards is very good and it is a good way to get exposure, I hope.
My dream is to some day form a social company with a coop structure that works full-time on open-source, either directly or indirectly helping clients use these tools in their system. I hope I am set up in the right direction.
Recently I opened a Twitter account to talk mostly about my open-source stuff [1]. I admittedly hate Twitter as a social network, but I've been convinced that it is a good place for networking in our industry, so I just play the game.
I keep telling myself that I should open blog too, but then I realize that one can't simply do everything all the time, so I guess maybe I'll never do it.
To your last question: is it unfair to not do marketing to your work? Totally not. Just do whatever feels right to you. If one day you realize you have built something really useful, probably you'll get the urge to tell people about it.
[1] Immutable data-structures for C++: https://github.com/arximboldi/immer
Example usage: https://github.com/arximboldi/ewig
[2] https://www.youtube.com/watch?v=sPhpelUfu8Q
[3] https://public.sinusoid.es/misc/immer/immer-icfp17.pdf
[4] https://twitter.com/sinusoidalen
That is an oldie, that I did in high-school, just scratching my own itch (I was addicted to a game called XJump, but wanted a better version). The major marketing thing I did was submitting it to the GNU project, which helped it get some exposure. It also got packaged into Debian, which also got it into Ubuntu, which helped it get visibility and ease of install. For a while a few times a year I would receive recordings of "high scores" that people would send me to upload to the official website, where I kept a ranking. The website is now down sadly (ooops!).
Like you said, everyone has a reason to do what he does, and so my reason is self-promo to be honest. I actually think most OSS-Projects are done by their maintainers for this reason.
For promotion I had done/do the following:
- Post on relevant subreddits
- Google for new results (last 24h) that match some keywords ("js database") and answer there if possible
- Posted it on Lobsters and other js-news-sites
- Shown HN (I did this a bit too much which maybe can be called spam by some or "growth hacking" by others)
- Currently I think about doing an egghead.io-tutorial for the project
I would say that overall I spend about 20% of the time for marketing, 20% for the code, 30% for the tests and 30% for the documentation. Most of the time I just code for some weeks and after a new release, I do some promotion.
Here is the project btw: https://github.com/pubkey/rxdb
But seriously, that's a good idea for a metric.
I recently selected rxdb for an offline-first project I'm doing doing for myself. I expect it will be making my life much easier in the coming months, so thanks in advance for all the work you've put towards it!
I didn't really care in the slightest about vanity metrics like how many people were using it or how many people were contributing code. I wrote it because I bought a piece of hardware and it didn't work with Linux.
I'm also trying to figure out the best ways to do that. What my plan is: 1) I presented it last week at the ODSC West Conference and have seen a couple people use it and give me some comments. 2) I am planning on incorporating the algorithm into some Kaggle kernels so people can see its value. It definitely works better than some other outlets. 3) Respond on Quora or other places for cases when it might be useful 4) Shamelessly plug on HN ;)
1) I started it because it was simply a personal CSS framework I was using myself to kick start my projects, and I wanted to share it around.
2) People found it through various websites, organically I guess.
3) I initially only posted it here on Hacker News I think. Then it was trending on Github, and other people posted it on Reddit, and other websites like Codrops.
4) I've never really tried to market Bulma. It's just a solution to a problem I had, and it also happens to solve a lot of other developers problems.
I think if your open source project solves a common issue, people will eventually find it. I discover lots of valuable tools when trying to code something.
If you need a strategy, just copy what a successful startup would do: solve a problem that lots of people have. An open source project just happens to solve a problem you personally have, and you assume others will to, so you share that knowledge.
Thanks for your efforts and may you reach a healthy v1.
Marketing is traditionally understood as the complete relationship of product and market, including, for example, deciding on a set of features, naming, pricing (yeah, I know–but choice of license may be a close analogue), connecting with other products, and much more.
I develop open source systems in my work, partly for internal use but also to help grow the ecosystem our firm is in, and to make a name for ourselves.
We don't market heavily right now because our documentation is sparse so more users means more support.
I think working seriously on documentation is the primary way to market open source, actually.
That means not only API references but appealing and well designed READMEs and changelogs, tutorials, blog posts, etc.
Also having a chat where people can get involved and ask questions.
Beware that users are not only fun to have. They're also a liability in that you kind of have to help them and care about them!
So while it's true that good documentation is probably crucial for the project to become popular among the wider audience nowadays (or even to have a chance of being discovered by anyone), the absence of documentation is in no way an argument against telling fellow engineers about your work. We can figure things out, it's a part of the job :)
But yeah, it's not like you have to write narrative tutorials for newbies on every thing you do. I really like when there's documentation aimed at "hackers."
I've started it quite literally to scratch my own itch: after having upgraded to a newer OS X, I found out that my favorite torrent client does not launch anymore. I've already been thinking about starting my own OSS project for some time (I contribute to a number of OSS as part of my job), so the decision came naturally to me.
It was clear to me upfront, that at some point the project will become too large for one person to take care of everything, and I will have to look for co-maintainers. So from the very beginning I've been spending a lot of time writing documentation, examples and polishing README, and of course paying a lot of attention to overall design "quality".
All of these things paid off, and each posting, be it on Reddit, StackOverflow, Quora or HN, received some attention, stars and downloads. People have started to post bugs and questions, and this contributed considerably to my motivation to continue working on the project.
In August I've added a GIF animation of the CLI component to the README and submitted a yet another ShowHN: https://news.ycombinator.com/item?id=14911372. It was a blast! The project received several hundred of stars over the course of two days, and the feedback was also very insightful and helpful.
> do you think it's unfair to just work on something you like but never take the time to get the word out
I honestly believe, that this is in fact an obligation for the author to get the word out, IF the project might be of interest to someone besides the author himself. Otherwise, why make this software open source in the first place?
I'd also recommend the following read for a more step-by-step advice on marketing of amateur OSS projects: https://blog.cwrichardkim.com/how-to-get-hundreds-of-stars-o....
https://github.com/thechangelog/ping/issues
2,3) People mostly have known about this project. There are a lot of old blog posts. One advantage of a project being 10 years old is people may not have used it, but they have heard of it so when they (or someone they know) need it we come to mind.
4) Unfair? that depends. There are a lot of open source projects that are useful to exactly one person. If this is your project it is unfair to waste every bodies time marketing something they will not need. If you cannot honestly say the project is useful to someone else the time spent on marketing is a waste. In particular a lot of projects are started despite an existing project doing similar things (often as a fork), it is a lot of work to give the new project something that is compellingly better for more than just you.
On that note, I'll note that icecream and distcc do similar things. I have spoken to the maintainers of distcc and we agree with the principal that the features of icecream should be ported into distcc and then icecream killed. However since we forked distcc has got their own versions of our features. There are specific cases where only one way works, while the next the other way is the only one that works. As such I don't think we will ever port back despite a desire to do so.
1- We started it because we were tired of sending manual invoices to our clients for custom web application development work. We couldn't connect our invoices, customers, and services we provided to our customers in a single place. So we built Servicebot to automate the process of invoicing through Stripe. Creating a self service portal for customers to order more work, approve existing and future work. And we open sourced.
2- We have been writing blog content to show people how Servicebot will help cut business cost but automating the billing and customer management processes.
3- We have been posting it on Medium, Reddit, HN, and a lot of word of the mouth.
4- I don't think unfair is the right word. I think it's lack of knowledge. We spent a lot more time developing a solution for our itch than to think about marketing and product roll out.