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

The Privacy Patterns Project

Privacy represents a broad variety of concerns — subjective, contextual, hard-to-define — that real people have about the flows of personal information. Location-based services provide a key example: a growing field that uses potentially sensitive data, where adoption has been held back by privacy concerns.

Translating these concerns (as well as corporate and legal liability) into technical artifacts — a process known generally as "privacy-by-design" — has proven difficult. How can we best convert lawyer speak into engineering speak? How can problems be elegantly anticipated early in the development process?

Drawing inspiration from Christopher Alexander and the success of software design patterns in improving communication about tried-and-true practices, we hope privacy patterns will:

  • standardize language for privacy-preserving technologies
  • document common solutions to privacy problems
  • help LBS designers identify and address privacy concerns

We're currently compiling a first draft of some patterns to get things started, but our goal is for this to be a living document constructed by the community of engineers, designers, lawyers and regulators involved in this topic.

Contribution Instructions

All of the patterns and principle definitions live in the patterns repository. To make any changes or additions to the patterns on, you must modify the files there.

Prereqs: You will need to be signed in to Github. If you need a Github account, sign up for one here.

  • You can use github to fork and edit Patterns and Principles and create a PR on this repo.

  • OR you could use the visual editing steps below:

  1. Go to the list of Patterns or Principles

  2. To create a new Pattern or Principle click "Create new file".

  3. To edit Pattern or Principle, click on the name of the file you would like to edit. Click the "Edit Page" button at the top right the page (note: pages must be Markdown format).

  4. Make your modifications.

  5. When you are done, write a short message explaining the changes you made and why. Then select "Create new branch..." and click "Propose new change"

Development Instructions

  1. To setup locally. This will clone patterns and render the latest files locally.

     make build
  2. To test changes

    Edit files in ./patterns. You can cd ./patterns and use git commands to update the patterns repo.

     make static

    The resulting files are located in ./site/deploy.

  3. To view the changes on the site locally. This requires a docker installation

     make run


Creating a PR

  1. After running make build and make static as described above push to a new branch and create a PR on this repository.

  2. Following a review you can merge the PR which will start a automated docker build. You can check details on Docker Hub

  3. Once the build is complete, the website should be available on in the next 5-10 minutes.

Pushing to (public patterns)

For now the process for this is maintained by @mohit and @npdoty. Please ping them email or github to push master to the main site.


Software design patterns for supporting privacy.







No releases published


No packages published