What is civic.json?

So you've coded up a super awesome tool for your community. Now what? You want to share it, of course!

Well, civic.json is here to help.

It's a small file you put in the base of your project's public repository. Fill it with information explaining what your project's about, its development status, who helped build it, and where people can learn more.

Think of it like a structured "README" file that makes possible things like browseable project pages for your organization or city.

Want to see an example? Here's one for the civic.json specification, itself!

OK, how do I create one?

On this site

  1. Build it with the civic.json web form
  2. Validate an existing civic.json file by pasting its contents on this page

From the terminal

  1. Install the civic.json command line interface with pip install civicjson
  2. Initialize a civic.json file with civicjson init
  3. Edit the template to fit your project
  4. Validate it with civicjson validate

Whichever your preference, the schema specification gives more detail about the information that goes into a civic.json file.

Who is behind this?

Civic.json was originally created by BetaNYC in 2014.

Now, a group of Washington, DC residents—Code for DC volunteers and employees of the District Government—have extended their specification to make it useful for a broader user base.

In doing so, we aim to foster collaboration and reuse across government agencies, municipalities, and the citizen-government divide.

How can I contribute?

The civic.json (extended) schema lives here and this website's source can be found here. Both are available under a CC0 1.0 Universal license.

Found a bug? Think something could be explained better? Want to propose a modification to the schema? Open up an issue or send us an email at

Example civic.json