Spaces are used to group apps around a subject or entity. For instance, if you are developing a CRM application, you could create spaces for customers, dashboards and/or invoices. In each of these spaces you then add Weavy apps such as files, posts etc. Providing this kind of contextual information adds a very rich collaborative experience to your application.
Another common use case is to use spaces for different kind of projects — like marketing campaigns, a new product launch, or a project for a client. Spaces are also perfect for groups of people or departments such as Marketing, Sales or Developers.
See creating structure for more information and examples on how to use spaces for grouping apps in different scenarios.
A space (and all the apps and content inside it) is only accessible to the space members. So, in order for users to collaborate in a space they must first be added as members. This is handled automatically when you use the client SDK, but it can also be done programmatically via the JSON API or by an administrator in the web interface.
Space members are of course allowed to create content in their spaces. They can for instance post messages in the Posts app, upload files to the Files app etc. A space member is also allowed to add additional members to a space. One or more space members can be assigned as "space admins", this gives them additional abilities such as editing and deleting the space, adding and removing apps etc. A space admin can also remove space members.