This is the second post in our series about raising your profile in the web industry. Be sure to check out Ryan’s first post, about how to get a conference speaking slot.
I was super excited when Ryan mentioned that he would be writing a series about raising your profile in the web community. It’s something we’ve all dealt with at some point, right? How do I get my name and ideas in front of others while at the same time avoiding being that person? Whether it’s good or bad, I think everyone wants to be known and heard, because we want confirmation that what we’re doing means something to others. This series isn’t about how to be a douche – it’s about how to share your ideas and work hard to make the web community even better than it is today.
With that in mind, today we’re going to look at raising your profile by contributing to the community by working on open source projects.
What should I work on?
Where should I put the code?
At first, nowhere except your hard drive. Seriously. Don’t show your open source project off until your proud of it. Ideally don’t even talk about it, except if you feel like you need feedback from a few friends. Let it be yours. That may seem silly, but there are a several important decisions you have to make early on in your project that you’ll want to make yourself, before you have outside influence from contributors. Decisions like how your API is structured, what your coding style is, and what testing framework you’ll be using.
Once you’re ready to share your code, I highly recommend hosting it on GitHub. GitHub is where most independent open source projects seem to be happening these days. They’ve got great collaboration tools like their issue tracker and wiki features, and nice download functionality. You can even host a website for your project with them. And, when you start receiving contributions, GitHub’s pull request feature is literally life changing.
If you really can’t stand git, there’s BitBucket for Mercurial and a ton of other similar sites for almost any other version control system. They’re almost all free for open source projects. Just be sure that your code is in a version control system and that all the world can see it. Otherwise, it’ll be hard for potential contributors to work with you.
Pick A License
If you don’t pick a license before you launch, someone will inevitably ask you what license you’re using. The Open Source Initiative’s license directory is a great place to figure out what the terms of all of the different open source licenses are. I almost always go with the MIT license, which basically says that people can use your software for about anything they’d like (even for commercial uses) as long as they distribute the license and copyright notice for your part of the software along with it. I like the MIT license because it makes sure that anyone using a project I’m working on it can use it how they see fit.
Write some kick butt documentation.
Great open source projects have great documentation. If you don’t have great documentation, your software will be hard to use and potential users may even create their own code instead of using yours because they can’t figure yours out. Include a README file with your source that summarizes how to install and use your software. If you’re distributing a library, be sure to write API documentation. The best projects have a real home page as well, with the information from the README and links to the source repository for the project and any other information. Don’t worry if you don’t have crazy design skills. Just trade some programming time with a designer to talk them into designing the project site for you.
Kyle Kneath gave a really great talk at Magic Ruby this past year about documentation. I’d highly recommend checking out his slides.
Eek! It’s time to launch!
So you wrote your project. The source is up on GitHub. You’ve got documentation and an amazing new website that you bartered with a designer for. It’s time to launch! But wait, how will anyone hear about your project? This step is actually really important. What good is giving something to the community if no one knows that you gave it?
Thankfully, it’s pretty easy to get the word out these days. Pretty much every technology community has a few news sites and podcasts that you can contact about posting a release announcement for you. In the Ruby community that means sites like Ruby Flow and Ruby5. There are a lot more broadly focused community news sites like Hacker News and Reddit that are great for making announcements too. If you think your library is a great fit for the web community, email me and it may be something we can share here on Think Vitamin.
If you’re emailing bloggers, be sure to read Shawn Blanc’s great post about sending App Emails. It’s about iPhone apps, but it’s completely valid for almost any emails to bloggers where you’d like them to post about something.
One other great way to let people know about your app is to speak about it at conferences. In the Ruby community there are literally 12 bazillion conferences every year, and pretty much every single one of them includes talks about open source libraries and tools. Ryan’s post about how to get a conference speaking slot will certainly help out there.
This sounds like a lot of work. Is it worth it?
Open source projects are also a really wonderful way to meet people in your community. I’ve gotten to know some really amazing people that I know I wouldn’t have met if I hadn’t been working on projects with them. If you’re from a town without a huge web community like I am, that’s a really big deal.
Last I’d say that once things come full circle and you’re helping other people start their own projects, you really realize just how valuable this all is. The web is much more a community than an industry, and it’s amazing to have the opportunity to help the next generation of developers and designers start contributing to the community.
Thanks to Sebastian ter Berg for the great photo above.