User Roles for Small Teams
Tags: productivity, ux, functional, frontend
Published: 2021-08-26 13:41:24

It's true. Some organizations have entire divisions dedicated to website and content management. What is also true? That this is not the case for small teams. Most smaller teams have more basic, but similar needs: create and publish great content, generate sales interests and leads, maintain and update digital environments that proudly showcase the organization. 

Yet, for some small teams the editor of the last blog post published might also be the company's CEO (who also just restocked the kitchen before hitting that submit button). That doesn't negate the need **for permissions and approval levels** in this type of work space. Even if your team doesn't have the same roster as large organizations, user roles are still important, and can often improve efficiencies and workflow.

In this post, we'll define user roles, give a few examples of how small businesses put user roles to work, and provide tips on how user roles can help small teams when they're ready to grow.

##What are user roles?
**User roles are defined permission sets that allow logged in users to view, create, edit, publish and maintain website content and settings dependent on the level of access they are granted.** User roles in Apostrophe include: Guest, Contributor, Editor, and Admin (in order of increasing responsibility).

User roles are intended to provide structure, improve security, and support an optimal workflow for the organization's team managing a website and producing content. 

##User roles in Apostrophe
A **"user"** in Apostrophe is an account (usually for a human or benevolent robot) that can be used to log into the application. Beyond that, users get specific sets of permissions based on the role they are assigned. The user roles in Apostrophe are Guest, Contributor, Editor and Admin. What are the permissions granted based on these roles? We're glad you asked.

* **Guest**: Guest users can log into the website and view content with visibility set to "Login required." They cannot edit any content or view unpublished content.
* **Contributor**: Contributors may create and edit content, including the global doc. They cannot upload files (i.e., images, PDFs) or take any action on users.
* **Editor**: Editors have all the permissions of contributors. They can also publish content and upload files. They cannot take any action on users.
* **Admin**: Administrators have permissions to create, edit, archive, and publish any content. They are the only role that may create, update, or archive users.
Below is a screenshot of what permissions would be granted to a user selected as an Editor. A more specific listing of permissions are available to view in the UI. 

![Permission Sets](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jndemkl248geeb6pzgv1.png)
 
For more on user roles and how to add users in Apostrophe, visit the [documentation] (https://a3.docs.apos.dev/guide/users.html).

##User roles for small teams
For any size team; start-up small, growing small business, or even large enterprise organizations, the purpose of the user roles are the same, and they should fit and support the needs of that particular company. For small teams, consider the creative and approval workflow in place now. How is that workflow reflected by the roles? Are there modifications that should be made to the workflow to make improvements? The user roles in a CMS should accurately reflect the make-up of the team that the roles are supporting.

It is a good practice to spread out the responsibilities among the team and to also define exactly what those responsibilities are. Here at Apostrophe, we use [Notion] (https://www.notion.so/product) for a lot of these internal docs and definitions. This helps to eliminate duplicate work, but to also identify where there is some level of crossover knowledge and capability. There is often less coverage in small teams. Just think ahead to when your main Editor is on vacation (actually unplugged and offline, ahhh), and an Admin is able to step in to that role so that there is no delay in your content flow.

Small teams are often agile groups that find creative solutions, and this can often translate into extending a team with freelancers or contractors. If ever there is a time to be conscientious of user roles, it would be in this use case. Depending on the responsibilities of the contractor, it is wise to limit permissions to only what that user needs to be successful in completing their task. **The Contributor role would be an ideal fit for this case.**

Sometimes certain content should never be fully public. You may have subscribers who get special access or information that only employees should see. Consider the unlikely users of your site's backend. Perhaps support teams or even outside legal counsel that need to view private documentation. **The Guest role can be used for that.**

Require login access to view specific pages or pieces using the visibility field, labeled "**Who can view this?**" In Apostrophe, this field is found in the "Permissions" editor tab by default.

![Login Required](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bo65kmax81ucrrt56em2.png)
 
##Not everyone is an admin
It's hard to believe, but true, not everyone is an Admin. A common practice, particularly with small teams, is to assign the highest permission set to all users to avoid having to manage and monitor the activity. Worse yet, when all team members simply share one login as an Admin, sharing a password, kept on a sticky note on everyone's computer. I mean, it's not like there isn't anything else going on in the business, right? That CEO who earlier edited a blog post (and restocked the kitchen) is now off to host a sales demo. He doesn't want to become the bottleneck holding back progress, but recognizes the need to properly create new users and determine what permission set to apply for each. The few minutes spent on this simple process will support better workflow processes and may save many headaches in the future.

Not only are ubiquitous (or shared) Admins plain and simple chaos, it can lead to security issues and can wash away any workflow benefits provided within the CMS. For example, if everyone on the team is logging in as “Admin1” then trying to determine who exactly modified or published the latest piece of content is anyone's guess. Proper application of the user roles in small teams provides definition and accountability, along with a balance of activity and responsibility that is clear to see. It also clears the way to reap the benefits of editing guidance and approval workflows. This type of permissions-based infrastructure can result in a better end product, and sets the team up for growth and expansion in the future.

##Flex the roles when your team grows
When it's time, and the team is ready to grow, expect that your user roles will help support it. It's ok to revisit the roles and responsibilities of the team as you add new members, and it's encouraged to re-evaluate the permission sets granted in each role. This practice has been supported by Apostrophe 2 for some time and is being brought to the latest version of Apostrophe as an enterprise feature. This time in a company’s growth path is an opportunity to identify ways to improve the current workflow or team productivity in this area. It's important to think through how changes might affect the user role balance, particularly if your small team is only growing from "small" to "less small." But if your expansion is a bit more substantial, then it might be time to consider advanced permission, such as Groups (the enterprise feature coming soon to Apostrophe 3).

For more about Custom User Groups and other upcoming Apostrophe features, [check out our roadmap] (https://portal.productboard.com/apostrophecms/1-product-roadmap/tabs/2-planned).

User roles should help provide a framework for users and less stress to already juggling teams. Early planning and commitment to role assignments helps teams produce, publish and share messaging that everyone can be proud of. So, whether you're that CEO restocking the kitchen and beginning to venture into role assignments, or you're a seasoned small team accelerator about to build out custom groups, remember that it's ok to make changes as your business evolves, successful businesses always do.


*Want to learn more how Apostrophe can work with your team? [Book a Demo] (https://apostrophecms.com/contact-us)*

*Looking to extend your team with Apostrophe experts? [Find a Partner] (https://apostrophecms.com/find-a-partner)*