Creating a client structure

Weavy is built to be controlled by you and matched to your environment and the structure of your site. At an early stage you should think about how to match Weavy to your structure. Get to know the concepts of Weavy to get a better understanding of how to achive this integration.

Apps

The easiest way to start is to think of what kind of apps you want and where they should be placed in your web pages. The type of apps is not that important, it's more important where they belong. You may have apps that are very general and not related to anything specific, like a messenger app. You may also have apps that are very specific, like a files app belonging to a specific page or section.

So the important thing will be to establish whether they belong to every page or maybe just to a specific section. This will lead the way on how to group the apps.

var space = weavy.space({ key: "demo", name: "Projects" });
space.app({ key: "x1-files", type: "files", name: "Project X1 Files"});
space.app({ key: "x2-files", type: "files", name: "Project X2 Files"});
space.app({ key: "project-posts", type: "post", name: "Projects Discussion"});

Spaces

Once you have established your grouping of the apps and where they belong, we need to match this against how the apps will be represented in a space. Spaces may have diffent roles for the grouping in different scenarios. One space may contain one or multiple apps and those apps belong to that specific space. You may have multiple apps of the same type in the same space.

Mapping spaces to user groups

Each space is only accessible by the members of that space. You may make as many users you like members of the space, so your in control of which member that belong to the space. You could match the space to a specific group of users, for instance a team or a division. Naturally, users can be members in many spaces. This will make the apps accessible to that group of users.

var space = weavy.space({ key: "sales", name: "Sales Team" });
space.app({ key: "sales-posts", type: "posts"});
space.app({ key: "sales-files", type: "files"});

Mapping spaces to an entity

Another way to match the spaces to your structure would be to match spaces to a specific entity in your structure. This entity could be a customer, project, a document or a section on your web site or in your web app.

var space = weavy.space({ key: "customer-ABC123-Acme-Inc", name: "Acme Inc" });
space.app({ key: "customer-ABC123-posts", type: "posts"});
space.app({ key: "customer-ABC123-files", type: "files"});
var space = weavy.space({ key: "project-x1", name: "Project X1" });
space.app({ key: "x1-posts", type: "posts"});
space.app({ key: "x1-files", type: "files"});

Mapping spaces to a general context

You may want some apps to be available to all the users on all pages, for instance a messenger app, a general posts stream or a notifications app. For this, you could mach it against a global space where you add all your users.

var space = weavy.space({ key: "global", name: "Global Shared Space" });
space.app({ key: "main-messenger", type: "messenger"});
space.app({ key: "main-notifications", type: "notifications"});