Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Stories in Ready Coverage Status

18F Hub

Build Status Code Climate Test Coverage

The 18F Hub is a Jekyll-based documentation platform that aims to help 18F and other development teams organize and easily share their information, and to enable easy exploration of the connections between team members, projects, and skill sets. It aims to serve as the go-to place for all of a team's working information, whether that information is integrated into the Hub directly or provided as links to other sources. It also serves as a lightweight tool that other teams can experiment with and deploy with a minimum of setup.

The internal 18F Hub is hosted at and the public Hub staging area is hosted at

See the 18F blog post announcing the Hub for more details about the vision behind the Hub and the goals it aims to achieve.

The main Git repository is and the primary maintainer (for now) is @mbland. The goal is to eventually hand ownership over to the Documentation Working Group, or to the 18F team as a whole.

Generating the site/hosting locally

It takes less than a minute to set up a hands-on demo, which we hope will inspire other teams to develop their own Hubs, publish snippets, and organize working groups/guilds/grouplets.

You will need Ruby version 2.1.5 or greater. To run your own local instance at http://localhost:4000:

$ git clone
$ cd hub

# Only 18F team members need run this:
$ ./go init

$ ./go serve

See the "Hub 101" docs either in this repository, served locally, or on the 18F Public Hub for details and tips on how to set up and work with the Hub development environment.


  1. Fork the repo ( ). If you're an 18F team member, you'll likely find it easier to clone the repo instead of forking it (git clone --recursive The recursive clone ensures that you'll grab the contents of private submodules.
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Feel free to ping @mbland with any questions you may have, especially if the current documentation should've addressed your needs, but didn't.

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.