A year ago, we open sourced our documentation, with the hypothesis that it would improve the docs by adding feedback loops and removing barriers that discourage contribution. We also wanted to share what we had learned during the process. I’m glad to say that so far the results have been good, and the decision to open source our documentation continues to help us improve it as a product. Where We Are Now We’ve had 59 different contributors to the docs repo since we open sourced it, with around 15 of those contributors being community members rather than SendGrid employees. Considering we had only a couple contributors before, that’s about 30x growth in the number of contributors. Makings things open and
I talk a lot about docs, because it’s important to me and important for the success of a product. You can read some of my thoughts on what makes good documentation and using Jekyll to create documentation. One of the goals I set last year when I was asked to take over the documentation was to eventually open source it. I’m happy to say that this week we flipped the switch and anyone can now view and contribute to the source for our documentation. Check out the SendGrid Docs repo on GitHub. Good documentation allows feedback from readers so they can point out inconsistencies or typos and have them addressed quickly. Even better is providing a feedback loop where those
I’ve spent a big part of the last year working on documentation for SendGrid. I’ve learned a lot of things. You can read about how we broke down the problem of documentation at a high level and why documentation is critical for success in Cheat Codes for Good Documentation. Below you’ll find the path we took, from the early days through last November’s switch to the current system, based on Jekyll. Most of what I’ll recommend applies to documenting an abstraction layer, e.g. an API. Scope of SendGrid’s Docs Just for context of what SendGrid’s docs look like, here is the output of a linklint check. 35 directories with files 6 default indexes 230 html files 1 image file 77
Everybody, especially developers, loves working on documentation. They understand the importance of docs and its impact on customer adoption and customer experience, and they always consider docs when planning and releasing code. Wait, why are you laughing?
Many companies have some kind of trouble with documentation. Lots of common problems make docs difficult to wrangle; information gets out of date or lacks completeness, the content is poorly organized or inconsistent, readers can’t find what they’re looking for, and code samples might be broken. If you walk through most engineering departments and ask for volunteers to help update docs, you’ll be met with silence if not outright derision.
The truth is that there are no cheat codes for creating a culture that values documentation or for creating quality content, but I’d like to share some practical things I’ve learned while trying to do just that at SendGrid, and hopefully give you a few extra lives (or at least some extra quarters) for your game.
Today SendGrid is excited to announce our new and improved documentation! Some of the highlights of the new system are: Quicker load times Improved navigation and organization More relevant search results Increased legibility Cleaner presentation of code samples Ability to toggle between JSON and XML examples The new system will allow us to collaborate on updates and changes much more quickly, and we hope that the changes will allow developers to find what they need quicker than before. We’d love to hear your feedback on how you like the changes or what we can do to make things better, so feel free to email us.
We have updated this system and moved it, please check out our Code Workshop here.
Sometimes it’s easier to understand how something works by seeing it in action rather than by reading about it. To make it easier to explore what our API is capable of and let customers try out API calls without having to write code, we’ve created our API Workshop.
Ready to take it for a spin? Start by putting in your SendGrid credentials: