The workspace is the root directory in a Polylith codebase, and it's where we work with all our building blocks and projects. A workspace is usually version controlled in a monorepo, and its subdirectories looks like this:
▾ workspace▸ bases▸ components▸ development▸ projects
We can summarise the main ideas like this. Components encapsulate functionality while the bases decide how the code should be exposed and executed, e.g. as a command line tool, a lambda function, or a REST API. This separation allows us to easily change how our code is executed by including an arbitrary set of building blocks in each project, that can later be used to build the artifacts we need. Finally, the development project is used to improve the development experience.