Previously, I wrote about Publishing to npm Using AppVeyor. This is a similar post, but specifically geared toward publishing an npm pack...AppVeyor npm MyGet
As of writing this post, Stuntman sits at 112 stars on GitHub, which is exceptional for an ASP.NET project. As a point of reference, StructureMap, a renowned project, sits at 621 stars. This post will tell you about the aspects that make Stuntman unique, the avenues used to get noticed in the .NET Community, and how you may apply it to your OSS projects.
Having a good idea is harder than it sounds. Sometimes when you “birth” an idea, it can be hard to look at it objectively. Having a team collaboratively determine a need and then build a solution doesn’t guarantee success, but it can help you from getting attached to an idea without the appeal necessary to break through.
So how do you come up with a “good” idea? I recommend determining pain points by listening to the team. I mean take your headphones off and listen to grunts, moans, and huffs of grief. A good idea is one that reduces your pain, saves you time, and expresses intent clearly across a team is usually a good idea.
It was important for us to work on an implementation that was easy to get started with but had the depth to solve some of the harder problems associated with authentication. When writing a package, think about your users; users are developers in this case. It is also important to be transparent while implementing. I mean you should be doing any OSS in a public forum, like GitHub, even if you think no one is watching.
I talked about lowering the barrier to entry in the previous section, and part of that lowering of the bar is making sure your idea is accessible. In the .NET community, that accessibility comes in the form of Nuget. Taking the time to put a package together means more users.
As developers, our focus is on the substance of our code. While quality code is essential to ensuring the long-term success of your project, you do need some style to pull in to capture the attention of other developers. On our team, we have the luxury of having strong design skills. Even if you lack the resources, I recommend focusing on three aspects of style:
Implementing any or all of these can get you coveted developer mindshare that is increasingly scarce.
This section is probably hardest for most developers; I know it was for us. Once you’ve created your package, how do you get others to notice it?
First and foremost, get on Twitter. You have no excuse not to be on this social media platform. Social media is where most of your colleagues are converging to share and promote ideas.
I recommend finding distinguished and respected developers who coincide with your idea. For example, if your idea attempts to solve an authentication pain point, then follow and talk to authentication experts.
Blogging is a two-way street. It helps to blog yourself, but it isn’t necessary. Search out for blog posts focused around your topic. Do not leave comments, but start a conversation. Commenting isn’t about being the next spam-king, but being sincere with other developers.
Microsoft has come a long way in helping foster ideas and discussion. There are a lot of avenues to promote your work. Some are listed below:
There are hundreds of online outlets that serve thousands of developers. Being featured on any of them is a boon for any project.
Depending on your capability, giving talks about your project may be a good way to get others interested. Find a local user group and gauge interest by having a face to face with your prospective audience. User groups are also an excellent opportunity to get feedback and improve the quality of the package.
Stuntman started as a good idea to solving a problem our team faced. We dedicated time and effort to building a consumable package with a low barrier to entry for any interested developers. We took the time to explain the problem through our documentation on the GitHub repository. We took the time to style our solution and make it feel like we cared. Finally, we drove our message to the community through the available outlets, and we reached other developers to let them know what we did could help them.
I hope this gives you an idea of what we did to get here. The promotion path is clear, but it does take a lot of effort and the right amount of repetition. Hopefully, this helps with your OSS project. Feel free to let us know what you did to promote your OSS project.