  deal.II is a state-of-the-art finite element library focused on generality,
dimension-independent programming, parallelism, and extensibility. Herein, we
outline its primary design considerations and its sophisticated features such
as distributed meshes, $hp$-adaptivity, support for complex geometries, and
matrix-free algorithms. But deal.II is more than just a software library: It is
also a diverse and worldwide community of developers and users, as well as an
educational platform. We therefore also discuss some of the technical and
social challenges and lessons learned in running a large community software
project over the course of two decades.
