Patternite Logo

About Patternite

Wikipedia defines a design pattern as a "general, reuasble solution to a commonly occurring problem in software design", and we use the same definition here. Broadly, Patternite is a unified resource for crowd-sourced software design patterns. A succinct overview of what Patternite is, and importantly, what it isn't, can be seen below.

What Patternite is

  • A resource to find design patterns that solve common problems in software development
  • A tool to write up these patterns, and get feedback from the Patternite community
  • A place to give writers feedback about their patterns

What Patternite is not

  • A question and answer site
  • A place for long-form blogging
  • A place for opinion pieces about software development or otherwise
  • A scratchpad for rough or untested ideas

Contributing patterns

We welcome contributions from anyone, whether you're an engineer, student, hobbyist or otherwise, and irrespective of your level of experience - we just ask that you familiarize yourself with the following section before contributing. Any suggestions on improving the contribution workflow are welcomed, and you can reach us through the

contact page


Key things to keep in mind

  • Application is critical - patterns should solve problems, not exist for their own sake
  • Patterns which solve specific problems are best, but more general patterns are fine too
  • Patterns should be stripped down to only the necessary code, and remain focused on solving the problem

More in-depth guidelines for writing each section of the pattern are found below.


  • The title should always specify the problem being solved. For example, "Using Python decorators" is a bad title, whereas "Timing functions using Python decorators" is far more informative.
  • Keep the title on the shorter side, if possible

Short description

  • The short description is a one to two sentence summary of the pattern and how it relates to the problem
  • Mention the major frameworks/libraries/packages used in the pattern, if applicable


  • The code for the design pattern goes here
  • Use comments as necessary, but try to make the pattern as simple, stripped down, and self-explanatory as possible
  • If you want to include anti-patterns to demonstrate how your pattern compares, put the anti-patterns after your pattern, not before

Long description

  • The long description is a place to provide more detailed explanations of the design pattern
  • You can provide brief background information on the problem and the techniques used in your pattern to solve the problem
  • You can reference line numbers in the pattern code by putting a # before the line number (i.e. line 4 can be referenced as #4). In the future, we will add a line tagging feature which uses this syntax.
  • Links to resources (such as documentation, blog posts, etc.) for further reading go here

Patternite © 2021

Patternite Logo