Announcing Apostrophe 3, Beta 1
Tags: webdev, news, vue, ux
Published: 2021-05-07 13:02:50

At long last, we're pleased to announce the launch of Apostrophe 3 Beta 1, available now on GitHub. Beta brings a robust new Permissions module in Apostrophe 3 Core, as well as an abundance of various UX improvements and bug fixes.

##Permissions
This is a big one! We've redesigned permissions in A3 to provide a robust, consistent permissions set out of the box through User Roles. User Roles provide fixed, immutable permissions for all content types.

![apostrophe-3-permissions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2r66ovg705rpbukiimr3.jpg)
 

**Admins** can do whatever they'd like, as an admin should. Critically, they are the only users who can create new users and edit other users.

**Editors** can create, publish, archive, delete, and approve any content. Unlike Admins, they can't edit any users.

**Contributors** can create content, but **all content must be approved by an Admin or Editor before publishing**. They're not able to archive content, and to prevent clutter in the media library, they can't upload new images and files.

**Guests** can view any content with its visibility set to `Login Required`, which is great for Intranet sites. But they don't have read or write permissions to any part of the admin interface.

Reference our [documentation] (https://a3.docs.apos.dev/guide/users.html#user-roles) for a more detailed table of permissions.

In the future, we'll be releasing a [Groups] (https://portal.productboard.com/apostrophecms/1-product-roadmap/c/38-groups) module that allows for a more complex permissions matrix for different content-types. This is planned as an [Apostrophe Assembly] (https://apostrophecms.com/assembly) feature for customers who need complex governance segmentation throughout their sites.

##Editorial Workflows
Most CMSes don't provide editorial workflows out of the box. We do. Critical to this is the ability to compose draft updates to content that has already been published. As such, we've introduced a simple **Submissions** view, where Admins and Editors can review **Contributor** submissions.

![apostrophe-3-submissions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxh9o9p2xqkdkfyl053f.jpg)
 

They can review any new content before it is published, as well as any pending updates to content that has already been published. Admins and Editors can publish updates or store them for later to their hearts' content. No need for approval. All pages and pieces now provide a context label to indicate the state of the document. In all, there are three such labels.

![apostrophe-3-manage-pages-1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2o4xzgegpn81uchn5fd.jpg)
 

**Draft** - A document that is currently unpublished.

**Pending** - A draft that is awaiting approval from an Admin/Editor.

**Pending Updates** - A previously published document that has an active draft in progress.

##Quick Menus
We've added a number of context menus in Page and Piece managers, allowing users to quickly commit actions to various documents. You can now archive, edit, or preview a document without opening it.

##Archive View
Previously, archiving a page required users to drag the page to an Archive section in the Page tree. As mentioned above, you can now archive a document using a quick menu. More importantly, the archive is now **an actual place**. All archived content can be found by switching between a Live and Archive view. Once an item is archived, it can be restored as a draft before re-publishing. We're happy with this more universal approach to archiving and we hope you are too.

![apostrophe-3-manage-pages-2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ca96v4rz2fpy2o2v4iv3.jpg)
 
##Draft Mode Improvements
In previous Alpha releases, users would see draft content by default as they traversed their site while logged in. We've reversed that. We're now showing the published context as the default view. Users can still switch between published and draft context when appropriate.

##New Notifications System
We're releasing a newer, snappier, and generally speaking more pleasurable notification experience. They've moved from the bottom-right to bottom-center and the animation is a lot more fun to watch.

##New Build Process
A3 includes a build process to prepare the Vue.js-powered user interface for use. The build runs from an internal task, `node app @apostrophecms/asset:build`, which was included in the [boilerplate scripts] (https://github.com/apostrophecms/a3-boilerplate/) during the Alpha phase. Running `npm run dev` as instructed in the boilerplate would start with that Apostrophe build task before running the project-level build and starting up.

We have simplified this for developers by incorporating the editing UI build into app start-up. So in the simplest of cases, the required CLI command for the first start up has gone from this:

```
node app @apostrophecms/asset:build && node app
```

To this:

```
node app
```

##Improvements to Fragments
In Apostrophe's page templates, [fragments are the new macros] (https://a3.docs.apostrophecms.org/guide/template-fragments/). They can do nearly everything macros can do, but crucially, they also support Apostrophe areas, widgets, and [async components] (https://a3.docs.apostrophecms.org/guide/async-components/).

However, previously, fragments had several important limitations: they could not call each other, and they did not support passing in a content block. Now both limitations have been removed. Big thanks to [Miro Yovchev] (https://github.com/myovchev) for contributing a solution to the content block problem!

We're hoping to add support for `with context` as well, at which point fragments will have every feature of macros. PRs are welcome.

##Looking ahead to Stable
Our stable release is just around the corner, still slated for a late Q2 release date. For now, we've cut off new feature development to focus on testing and remaining bug fixes. Speaking of bugs, please report them [here] (https://github.com/apostrophecms/apostrophe/issues/new/choose), if you find any. We're still developing our roadmap for a post stable release, so be sure to check out our [roadmap] (https://portal.productboard.com/apostrophecms/1-product-roadmap/tabs/1-under-consideration) and make suggestions for what you'd like to see.

##A3 demo 👇👇
Spin up your own [A3 demo experience] (https://apos3.dev/). 


*This post was written by Apostrophe's leading accessibility advocate, Product Manager, and accidental adventurer. We also call him [Ben] (https://github.com/localghost443).*

*Credit to Unsplash community members [Omar Flores] (https://unsplash.com/@colorflores) [Rick Mason] (https://unsplash.com/@egnaro) [Wu Yi] (https://unsplash.com/@takeshi2) [Iker Urteaga] (https://unsplash.com/@iurte) for the images used in the screenshot backgrounds.*