This repository contains 18F's website.
Clone or download
Latest commit 7c95478 Sep 20, 2018
Failed to load latest commit information.
.circleci remove reference to codeclimate Aug 22, 2018
_about Federal employee language Aug 27, 2018
_authors Merge pull request #2848 from 18F/login-buying-post Aug 7, 2018
_code_of_conduct Removes version from nav May 8, 2018
_data changing about 18f to about Jan 31, 2018
_includes increase twitter card size Sep 4, 2018
_join Delete consulting technical lead jon Sep 13, 2018
_layouts hide date from Related blog posts section Aug 20, 2018
_plugins Change reference to global sites var Jan 3, 2018
_posts Unpublish guys bot post Sep 6, 2018
_principles Merge pull request #2656 from 18F/dev Jan 31, 2018
_products_projects Agile BPA image and cleaned up image descriptions for 508 May 8, 2018
_sass moved quote above fold, reduced size of into section on what we deliver May 8, 2018
_services_projects Typo fix May 14, 2018
_styleguide Remove extra words Apr 12, 2018
assets Merge pull request #2859 from 18F/shared-code-post Aug 15, 2018
blog Unpublish guys bot post Sep 6, 2018
examples revised project page documentation Apr 10, 2018
foia-reading-room Adds the first FOIA release, for slack channels Apr 28, 2017
pages Lindsay to Kenny Sep 19, 2018
spec spacing fix Mar 8, 2018
tests Add new tags Aug 24, 2018
.about.yml Fixes and updates Dec 29, 2017
.cfignore Add CF deployment scripts and manifest Apr 30, 2015
.eslintignore eslintignore Feb 22, 2017
.eslintrc add codeclimate config, edit eslintrc config Jan 3, 2017
.gitignore Styleguide (#2350) Mar 14, 2017
.gitmodules Update import-public.rb to import Hub API JSON Feb 24, 2015
.hound.yml test circle config Oct 14, 2016
.rspec start rspec Dec 30, 2016
.rubocop.yml rubocop config Jan 5, 2017
.ruby-gemset Merge 'staging' into fix-typos-in-github-guide Mar 4, 2015
.ruby-version change ruby version from 2.2.3 to 2.3.1 Oct 24, 2016
.scss-lint.yml Adds HoundCI and associated linters (#1905) Oct 3, 2016
404.html [WIP] Restore accesslint (#2346) Mar 14, 2017 Standards to System Jan 24, 2018
Dockerfile added docker file and support Oct 14, 2016
Gemfile Merge branch 'master' into update-circle-ci Aug 9, 2018
Gemfile.lock update ffi Sep 10, 2018 Remove extra word Jun 13, 2018 Standards to System Jan 24, 2018 Update Mar 26, 2018 Merge branch 'master' into remove-code-climate-add-snyk Aug 9, 2018
_config-accesslint.yml Publishes stakeholder buy in for agile post Dec 14, 2017
_config-blog.yml Publishes stakeholder buy in for agile post Dec 14, 2017
_config-fast-builds.yml basic print stylesheet (#2364) Mar 21, 2017
_config.yml Changed layout to have side nav May 8, 2018
build add headers redcarpet extension Oct 28, 2016
check_images.rb Image check (#2345) Mar 7, 2017
config_blog.rb don't requre pry or rb-readline Feb 16, 2017
docker-compose.yml fix encoding issues in serve command Oct 24, 2016
docker_entrypoint.rb fix hound violation Oct 14, 2016
favicon.ico Fully redesigns the site, see commit history at 18F/ Aug 31, 2016
killport don't requre pry or rb-readline Feb 16, 2017
package.json basic print stylesheet (#2364) Mar 21, 2017
robots.txt Fully redesigns the site, see commit history at 18F/ Aug 31, 2016
serve Related posts update (#2369) Mar 24, 2017
serve-accesslint don't requre pry or rb-readline Feb 16, 2017
serve-blog sticky nav in mobile Feb 7, 2017
serve-fast Styleguide 2.0 (#2365) Mar 27, 2017
sitemap.xml don't requre pry or rb-readline Feb 16, 2017
system-security-plan.yml SSP update Oct 6, 2016

CircleCI Known Vulnerabilities

18F’s flagship website

This repo houses the 18F website. We use the Draft U.S. Web Design System as a front end framework. The site is built and served through the Federalist platform.

Style and style guide extends the U.S. Web Design System and 18F Brand guidelines to create a style that is professional, unique, and informative. The style guide, located at documents the patterns and components used to create this theme.

View style guide


A detailed history of the past work that went into developing this redesign can be found at 18F/


Run each of the following steps to get the site up and running.

  1. git clone
  2. cd
  3. bundle install
  4. ./serve

To dramatically reduce the build time, there are two commands that you can run instead of ./serve:

  • ./serve-fast: This will eliminate all of the blog posts and the search index, but generates all other pages
  • ./serve-blog: This will eliminate all but the latest three blog posts, but keeps the rest of the site intact.

You should be able to see the site at:

Alternative Installation using Docker

Using Docker can make dependencies management easier, but can also slow down your build time. You can find out more in this discussion.

To try this out on MacOS:

  1. Install Docker Toolbox.
  2. Make sure Docker is running and cd into your project folder.
  3. Run docker-compose build to build the docker image and its dependencies. You only need to build once, but if there was an error with the build , rebuild using the --no-cache option like so docker-compose build --no-cache to avoid using the old version of the docker image.
  4. Run docker-compose up. Note: if you want to run a single command and bypass your Dockerfile for debugging purposes, you can do like so docker-compose run app <COMMAND> (for instance, you can run bundle docker-compose run app bundle install). Our site is large, so this could take awhile.
  5. Visit http://localhost:4000/site/ in your browser. Make sure that you include the trailing slash.

System security controls

The site is a static website with HTML, CSS, and Javascript. Deployments are done through Federalist.

  1. Federalist runs in its own organization and space in, which piggybacks on AWS GovCloud.
  2. Federalist Admin:
  3. Federalist responds to a webhook on GitHub and runs Jekyll to generate static web files and puts them in an S3 bucket.
  4. We map URL to the S3 bucket.