Trunk-based development is a workflow where developers work directly on a main branch called the "trunk". The trunk is always in a deployable state. Short lived branches are used for developing new features which are then merged into the trunk after passing tests. Releases are cut from the trunk periodically. This allows for continuous integration and deployment while maintaining a stable release.