Contributing is a community effort, and we greatly appreciate contributions of all kinds.

The easiest way to contribute is through content requests or bug reports. Describe what you want or what went wrong!

If you want to contribute content, first open an issue describing your addition to get early feedback on the content that you are adding. This will also help avoid wasted / duplicate efforts and ensure that your work is incorporated into the website.

You can also read about the site setup, how to build the site, our development workflow, and how to submit a patch.

Content Requests

Is there something you wish existed on Please describe it in a content request by creating an issue.

Bug Reports

Did you see something wrong on Sorry about that! Bug reports are greatly appreciated.

When you submit a bug report, please include relevant information such as the page you were on and what exactly was wrong.


Setup uses Jekyll, a static site generator.

All the content is written in Markdown files with Liquid templating (the stuff enclosed in {}) and YAML front-matter (the stuff enclosed in --- at the top).

To start, clone this repository recursively and change directories.

git clone --recursive [email protected]:starthacking/

bourbon and neat are git submodules, so you will need to initialize them:

git submodule init
git submodule update


To build and run on your own computer, first install Ruby, then bundler, then run the following inside the folder:

Run bundle install to fetch and install dependencies.

Run bundle exec jekyll build to build the site (into the _site directory).

For development purposes, it’s helpful to run bundle exec jekyll serve --watch. This will watch the source for changes, rebuild when necessary, and serve the site at http://localhost:4000.


When working on a new feature, branch off master. Pull requests are merged in using non-fast-forward merges using git merge --no-ff.

The master branch is the live version of the site that is available at


We love it when people submit new content to! Start by forking, then add some content, then submit a pull request.

When submitting a pull request, your version history should be clean, and your commit messages should be descriptive and properly formatted.


This project uses EditorConfig to make it easier to maintain a consistent code style. We highly recommend that you use the plugin.

[Plugin for: Sublime, Vim, Emacs, Atom, Other]

There are other conventions (such as 80-column lines) that are not captured in the EditorConfig. In addition, please try your best to maintain consistency with the rest of the project in terms of formatting, writing style, and coding style.

If you have any questions about anything, feel free to open an issue asking for help or ask over email.