Announcing Apostrophe 3, Beta 1

Officially launching Apostrophe 3, Beta 1. Permissions, editorial workflows, quick menus and more!

A3 Beta banner

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.


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

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 for a more detailed table of permissions.

In the future, we'll be releasing a Groups module that allows for a more complex permissions matrix for different content-types. This is planned as an Apostrophe 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

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

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

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 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. They can do nearly everything macros can do, but crucially, they also support Apostrophe areas, widgets, and 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 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, if you find any. We're still developing our roadmap for a post stable release, so be sure to check out our roadmap and make suggestions for what you'd like to see.

Credit to Unsplash community members Omar Flores Rick Mason Wu Yi Iker Urteaga for the images used in the screenshot backgrounds.