Skip to content

Instantly share code, notes, and snippets.

@miklb miklb/
Created May 25, 2017

What would you like to do?
@18F README boilerplate. Still looking for the canonical home of this file, but it's a great starting document

CFPB Open Source Project Template Instructions

  1. Create a new project.
  2. Copy these files into the new project
  3. Update the README, replacing the contents below as prescribed.
  4. Add any libraries, assets, or hard dependencies whose source code will be included in the project's repository to the Exceptions section in the TERMS.
  • If no exceptions are needed, remove that section from TERMS.
  1. If working with an existing code base, answer the questions on the open source checklist
  2. Delete these instructions and everything up to the Project Title from the README.
  3. Write some great software and tell people about it.

Keep the README fresh! It's the first thing people see and will make the initial impression.


To install all of the template files, run the following script from the root of your project's directory:

bash -c "$(curl -s"

Project Title

Description: Put a meaningful, short, plain-language description of what this project is trying to accomplish and why it matters. Describe the problem(s) this project solves. Describe how this software can improve the lives of its audience.

Other things to include:

  • Technology stack: Indicate the technological nature of the software, including primary programming language(s) and whether the software is intended as standalone or as a module in a framework or other ecosystem.
  • Status: Alpha, Beta, 1.1, etc. It's OK to write a sentence, too. The goal is to let interested people know where this project is at. This is also a good place to link to the CHANGELOG.
  • Links to production or demo instances
  • Describe what sets this apart from related-projects. Linking to another doc or page is OK if this can't be expressed in a sentence or two.

Screenshot: If the software has visual components, place a screenshot after the description; e.g.,


Describe any dependencies that must be installed for this software to work. This includes programming languages, databases or other storage mechanisms, build tools, frameworks, and so forth. If specific versions of other software are required, or known not to work, call that out.


Detailed instructions on how to install, configure, and get the project running. This should be frequently tested to ensure reliability. Alternatively, link to a separate INSTALL document.


If the software is configurable, describe it in detail, either here or in other documentation to which you link.


Show users how to use the software. Be specific. Use appropriate formatting when showing code snippets.

How to test the software

If the software includes automated tests, detail how to run those tests.

Known issues

Document any known significant shortcomings with the software.

Getting help

Instruct users how to get help with this software; this might include links to an issue tracker, wiki, mailing list, etc.


If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker.

Getting involved

This section should detail why people should get involved and describe key areas you are currently focusing on; e.g., trying to get feedback on features, fixing certain bugs, building important pieces, etc.

General instructions on how to contribute should be stated with a link to CONTRIBUTING.

Open source licensing info

  1. TERMS
  3. CFPB Source Code Policy

Credits and references

  1. Projects that inspired you
  2. Related projects
  3. Books, papers, talks, or other sources that have meaningful impact or influence on this project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.