Substrate takes a modular and flexible approach to blockchain development. With every design decision, you can choose between the complexity of technical freedom and the ease of developing with predefined modules.
The following diagram illustrates the nature of this flexibility.
The main use cases for Substrate blockchains reflect this sliding scale between technical freedom and development ease. At one end of the spectrum, you can deploy predefined Substrate nodes with minimal configuration and launch a blockchain with virtually no development effort. At the other end of the spectrum, you can design and implement a Substrate-based blockchain from scratch, giving you the technical freedom to innovate.
Naturally, the most common use case falls between these two extremes. In the middle of the spectrum, you can use FRAME—an acronym for Framework for Runtime Aggregation of Modularized Entities—to create a customized Substrate runtime. With this approach, you can choose how much control you have over the blockchain logic by selecting and configuring the modules—called pallets—that you want to use from a library. If a pallet doesn't exist for the functionality you need, you can use FRAME to create your own custom pallet, then add it to your customized runtime.
Explore the following resources to learn more.