I used to beat myself for being inconsistent. Not anymore. Github is my lab, not my job. I make sure to have a stable, working version on master and move on. I come back once motivation strikes again. I play it long term.
Whether you do backend, frontend, ML, or whatever, chances are your users are using frameworks. Write easy-to-follow recipes for how to plug your library into any of these abstractions. It'll boost adoption.
Devs complain about clients asking too much yet we do the same on Github. You'll get a myriad of feature requests if your OSS project takes off. Communicate your scope. Learn to oblige. Learn to decline.
I send posts like this to +1050 devs on my email list. Join here to send you my tips and thoughts on algorithms and career growth. If email is not your thing, follow me on Twitter to get sneak peeks of what I'm working on.
I'm not a marketer so launching is always a gamble. What I've learned, though, is you must relaunch. People might have not seen your stuff the first time. Release a new version and write a blog post. Tweet about it.
Use the Github's Dependency Graph to see who's using your packages (lots of supported ecosystems). Then visit your users' repos and analyze usage. Are they hacking it to fix a hidden bug? can you improve the API?
Scientific research has shown that badges are positive signals for contributors and users. Adding a badge doesn't change popularity but popular projects are more likely to have badges. Use assessment badges.
You have just a few seconds to convince users to try your library. Put a GIF at the top of your README to help them quickly jump in. You can use terminal screencasts, GIF recordings or screenshot sequences.
Unless you're a seasoned OSS developer, you need to build yet another version of popular things. This will ignite your curiosity to try bolder things later. Don't try to code the next big thing. Just build something. Today.
I have unpopular projects with little to no installs. I'm proud of them, though. I learned a lot from building them. I use them myself. I'm getting better and enjoying my projects. That's my ultimate bar for success.
This is a personal journal for things that have worked in my open source work. You might want to save it. I'll keep updating this as I come up with new findings.
Do you have any advice to build good OSS projects? Let me know in the comments!
My mission is to help devs grow by posting tips to write CVs, teaching algorithms, or talking about my experience working on top remote workplaces. I also shared my experience transitioning to Machine Learning and put up some fancy illustrations to explain computer science problems. I wrote an eBook to help you land a job in Toptal. You can sign up here and get it right away.