Boolean networks have been used in a variety of settings, as models for general complex systems as well as models of specific systems in diverse fields, such as biology, engineering, and computer science. Traditionally, their properties as dynamical systems have been studied through simulation studies, due to a lack of mathematical structure. This paper uses a common mathematical technique to identify a class of Boolean networks with a “simple” structure and describes an algorithm to construct arbitrary extensions of a collection of simple Boolean networks. In this way, all Boolean networks can be obtained from a collection of simple Boolean networks as building blocks. The paper furthermore provides a formula for the number of extensions of given simple networks and, in some cases, provides a parametrization of those extensions. This has potential applications to the construction of networks with particular properties, for instance in synthetic biology, and can also be applied to develop efficient control algorithms for Boolean network models.