This is the final post in our series on the tools we use at ReadMe.
We’re a fresh take on documentation. Documentation is the UI for any API or library, yet it’s treated as an afterthought. It’s the boring thing you spend most of your job reading or writing. We want to jazz it up.
We build developer communities that reside on a subdomain. It’s documentation, but with a heavy focus on community: suggested edits of documentation, support section, comments, and more. For example, your ReadMe page might be developers.yoursite.com (and would be branded to match your actual site). So, we have an admin panel where providers can produce the content, and individual “developer hubs” (basically, documentation, support and API dashboard) that are consumer-facing.
Some of our favorite customers are Apache, Box, Yammer and Mozilla. We have a nice mix of public company APIs, open source projects and internal knowledge bases using ReadMe.
ReadMe currently provides the developer experience for over 15,000 projects, and has been read by over 800k developers. Here’s how we built it.
For the first time, I felt at home with a language. I had friends who loved Ruby or Python, and while I liked and appreciated them, they never clicked for me. With Node, it just felt right. Over a decade of programming all came together, and for the first time I truly enjoyed writing code.
Node is lightweight, yet powerful. I feel like the hard parts of programming are abstracted away, without ever feeling like I’ve lost control to “magic”. Frontend JS gets a bad rap for a bunch of reasons (browser compatibility, the DOM API, lack of new ES6 features, etc), most of which go away when using Node. (Sure, there’s still some rough edges left — but hey, that’s true about any language.)
I like the approach to packages, which vaguely follows the Unix philosophy:
This is the Unix philosophy:
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.
Like I said, for the first time ever, I feel completely comfortable with a stack. This scares me a little, actually. I’ve always prided myself on staying up to date with new languages and technologies. If I like this stack too much, I’m worried I’ll lose my incentive to keep exploring.
The Rest of the Stack
I spent enough time waxing poetic about Node, so I’ll speed through the rest.
Our backend framework is Express. Our HTML is Jade and our CSS is Stylus. I probably would have rolled my eyes a few years ago, however the lack of brackets and curly braces has grown on me. I find it cleaner to read and write. For Stylus, the mixin syntax beats Sass hands down: there’s no remembering what needs a browser-prefixing mixin, nib takes care of everything.
I don’t see us switching from Mongo anytime soon, though. I like Postgres, however I really like the freedom provided by Mongo. We’ve started using Redis for caching; this has sped the site up a lot.