If you care about web performance, you are likely to know and use tools such as WebPagetest, HTTP Archive, YSlow, Boomerang, etc. Whether your level is novice or expert with these tools, using them is only one side of the coin. What about contributing back to them? Those tools are open source which means you – whether you are a novice or an expert – can help out.
Open source represents one aspect of the web performance community. User group (meetups) focused on web performance are another.
In this post, I will explain how you can get started and get involved in our continuously growing community.
Open Source Contributions
There are many ways one can contribute to performance open source projects. The first common step is usually to find the source repository. This information is typically found on the project’s official website. Look for links such as “Contribute”, “Source Code” or “Fork me on GitHub”. For instance, see the YSlow website, which includes a link to the “Source” in the top navigation as well as a “Fork me on GitHub” banner in the top left corner:
Most open source projects nowadays are hosted on GitHub or Google Code. Here are the repositories for some of the most popular web performance related ones:
1. Contribute code:
Now that you’ve located the repository, it’s time to contribute! Do you have an idea for a new feature? Did you find a bug or see an issue in the bug tracker that you can resolve? Implement the new functionality or create a fix and send a patch back to the author (or submit a pull request if the project is on GitHub).
2. Testing and bug reports:
Not a developer or don’t think you have the coding chops? Not a problem. There are other ways to contribute. If you encounter a bug as you use the software, make sure to report the issue in the bug tracker. Chances are that if you encounter a problem, others might as well, but make sure to search the bug tracker first. In addition to bugs, you can submit feature requests or enhancement suggestions. As an example, this is the bug tracker for the HTTP archive project.
3. Help with user support:
Users might encounter issues and in turn will have some questions. A first place to look is the issue tracker. If you see an issue for which you know the solution, feel free to give an answer to the original poster. Other places to look at are mailings lists or IRC channels. Here is some user feedback for the ShowSlow project.
4. Contribute to the documentation or website:
As you read the documentation, report any error you might find. If you have writing skills, maybe you can help? Do you see any mistakes or missing information? Do you have suggestions for new howtos or guides? Write them! Often projects are using wikis which make it easy to add or edit content. If the documentation is not available in your native language, consider translating it. The same can be done for the project’s website: you can help maintain it with new content, corrections, translations, etc. For instance, this is the YSlow user documentation wiki.
5. Give financial support:
Open source projects are often run by individuals on their spare time and personal money. If you want to support the project, donate some money (look for a “Donate” link) or have your company offer to sponsor the project.
6. Live instances:
What about providing hosting? Do you have bandwidth and/or hardware available? Tools like WebPagetest or ShowSlow provide live instances hosted all over the world. Do you have a hosting location to offer? Get in touch! You’ll find the contact information on the project’s website. The following page for instance, gives details about hosting a WebPagetest instance.
7. Thank yous:
A very simple gesture, yet really appreciated by open source developers: express your appreciation and thank them. It’s as simple as a @mention on Twitter, but why not send a nice email or a post card?
These are a few ideas to get started with open source. Still not sure where to start? Just ask where you can help! I am sure the project owners will be happy to indicate where help is needed.
Open source projects are an important element of the performance community. Meetups are another great way to participate. There are quite a few performance meetup groups already. Check them out!
Don’t see one close to you? You could start one. I’ve seen three different formats so far. First, the classic tech talk with Q&A: a speaker gives a presentation on performance followed by a Q&A session. Second, the Meet 4 Speed: an open format where attendees can show their work on performance or bring a problem and get help from others. Finally, the drink up: meet over a performance enhancing pint (I shamelessly stole that line from my good friend Aaron) and talk shop with performance people.
Are you or your company working on really cool performance projects? Do you have some results or metrics to share? I love when companies are sharing their success stories (“We implemented the following web performance tweaks and we increased our sales by X%”!). Propose a talk to your local meetup. As an organizer myself, I am always looking for people that have interesting things to share on web performance.
There are a couple of other suggestions that I think are worth mentioning.
The first is blogging: you can share your knowledge with others on your own blog or as a guest blogger (see the Performance Calendar for instance).
And let’s not forget forums: one example is the forum hosted by the WebPagetest project . This is a good place to find some help on performance or help others.
This is what the Speed Awareness Month is about. Share the #webperf love: evangelize performance best practices, raise awereness and help improve the invaluable tools from our web performance toolbox.
Do you have feedback on this post? Feel free to comment below or to contact me via Twitter (@jphpsf).
JP Castro (@jphpsf) is a front end engineer living in San Francisco. He's passionate about web development and specifically web performance. He blogs at http://blog.jphpsf.com and co-organizes the San Francisco performance meetup (http://www.sfwebperf.org). When he's not talking about performance, he enjoys spending time with his family, being outdoors, sipping craft beers, consuming a full jar of nutella and playing video games.