When first becoming acquainted with the wonderful Dash framework, it is not immediately obvious how to write and organize code that is scalable, modular, and DRY for increasingly complex apps.

Although, Dash documentation does touch on application structure here, some felt that something was still missing that could be resolved with a more object-oriented approach. See this issue on GitHub for a very good discussion on this topic. The foundation for dash_building_blocks was bourne out of this discussion, particularly Ned’s comment introducing the idea of a BaseBlock that would link a layout to its relevant callbacks, effectively creating a reusable and inheritable “block” of Dash components.