The development project is where we specify all the components, bases and libraries that we want to work with:
Development projects gives us a delightful development experience that allows us to work with all our code from one place in a single REPL (if the language of choice has support for it).
The idea is to give us the fastest feedback loop possible and to keep things simple. We also separate development from production which allows us to optimize development for productivity while production can be optimized for non-functional requirements, like performance or scalability.
This gives an enormous flexibility and allows us to make decisions in production that don't affect development.
One of the main mistakes in the software industry today is that it conflates development with production in a way that if we add a service in production it will automatically "turn up" in development as one more project, because we use the production projects to work with our code.
This make things more complex than they have to be and accelerates the explosion of complexity. In Polylith we avoid this problem by isolating development and production from each other.