Announcing Apostrophe 3 Alpha
Tags: javascript, webdev, node, opensource
Published: 2020-11-11 17:19:01

Today, we are very pleased to announce the first Alpha version of ApostropheCMS 3.0. Apostrophe 3 is a major new release that will make developing and managing digital experiences with Apostrophe friendlier, faster, and more maintainable. 

If you want to skip the details and jump straight into the experience, check these links below:
[Demo] (https://apos3.dev/) / [Documentation] (https://a3.docs.apostrophecms.org/) / [Source] (https://github.com/apostrophecms/apostrophe/tree/3.0)

##A long labor of love
[Apostrophe] (https://apostrophecms.com) 2 was originally released in 2016 and over the last few years has been an amazing foundation, growing to support the needs of digital teams around the world and supporting the needs of projects like [Kimpton Hotels & Restaurants] (https://apostrophecms.com/case-studies/kimpton-hotels-restaurants), [Toyota South Africa] (https://toyota.co.za/), [the City of Amsterdam] (https://apostrophecms.com/blog/rapid-website-development-for-the-city-of-amsterdam), and the [Michelin Digital Experience Platform] (https://apostrophecms.com/case-studies/michelin-case-study).

When we started conceiving the scope of Apostrophe 3, the following goals emerged:
* Update our back-end APIs with modern JavaScript practices
* Make it easier for developers to configure complex modules
* Rebuild our admin UI layer with Vue.js
* Comprehensively improve the UX / UI
* Enable headless use from the start to better fit in Jamstack architectures

It's been a long road, and we are so excited to finally share all of these new changes with you.

![Incontect UI](https://dev-to-uploads.s3.amazonaws.com/i/t70lb9wbwnhd0q0rccb2.png)
 

##Major changes
Apostrophe 3 introduces a number of new features for developers and content-editors. It's been re-engineered from the ground-up to provide a best-in-class experience for organizations large and small.

###100% RESTful Headless APIs
While Apostrophe 2 has custom APIs and a separate `apostrophe-headless` module, A3 is powered by RESTful APIs from the ground up. Whether you're building a website or an SPA, we've got you covered.

###New Editing Experience
Powered by [Vue.js] (https://vuejs.org/), the new editing experience is much faster than in A2. We've completely overhauled the design and UX with superior editor interactions.

###New Rich Text Editor
A3 uses the [tiptap] (https://tiptap.dev/) rich text editor, a modern Vue-based editor. tiptap is powered by [ProseMirror] (https://prosemirror.net/), a rich text editing framework embraced by many companies, notably including The New York Times. Its easier to customize and a pleasure to use.

###Improved Module Architecture
A2 had a steep learning curve when it came to writing more complex project code. In A3, we have a clearer structure for modules. Each module has a clearly defined home for methods, event handlers, [Nunjucks] (https://mozilla.github.io/nunjucks/) helpers, async components, query builders, and more.

###All `async/await`, No Callbacks
Callback-driven code has been completely eliminated from the core of Apostrophe, and all of the JavaScript APIs return promises, so you can `await` them.

###Async Components & Lazy Loading
A2 developers often asked why they couldn't fetch content from the database from inside a template. Now you can. The async component pattern delivers this feature without cluttering your templates with complex JavaScript. Load what you need, when you need it.

###Unopinionated Front End
A2 shipped with jQuery, lodash, momentjs and more. Later, we added the lean option to remove these things. A3 takes this one step further: there are no front-end libraries at all sent to logged-out users, except for a very small vanilla JavaScript helper library for core tasks like communicating with Apostrophe and displaying our video widget. The new library is under 10K gzipped.

![A3 UI in Vue](https://dev-to-uploads.s3.amazonaws.com/i/kyc1i7ytdhztttzxs5d0.png)

##The road to a stable release
We still have plenty of work ahead of us until we're ready to release a stable version of A3, but the good news is that this will be delivered over the course of frequent updates and communication from us in the coming months. We're busy sketching out a timeline for a rolling release of both new and familiar features that were not part of our `3.0.0.alpha.1`.

For a full list of what's coming next, check out our [A3 Documentation] (https://a3.docs.apostrophecms.org/coming-soon.html). Soon, we'll be publishing a new roadmap detailing our rolling release cycle, the road to A3 stable, and thereafter. Our goal is to release A3 stable in Q1 of 2021.

##Contributing
ApostropheCMS is and always will be open-source. We invite you to contribute by getting started with the [boilerplate] (https://github.com/apostrophecms/a3-boilerplate/), making bug reports, requesting features, and providing any feedback you want to share. We've always looked to our developer community as an important source of insight, and that will never change. We welcome any and all comments to the [A3 source code] (https://github.com/apostrophecms/apostrophe/tree/3.0).

##FAQ

###What will the migration process look like from A2 > A3?
We're diligently working on a code migration module that will ease the process of upgrading. A3 is an evolution from A2 and we expect most users to have a relatively easy time migrating. If you are an Apostrophe [Enterprise] (https://apostrophecms.com/enterprise) or [Assembly] (https://apostrophecms.com/assembly) customer, we'll be able to support you through that process when the time is right to make the whole migration as seamless as possible.

###Do I have to upgrade?
We encourage you to keep using Apostrophe 2 for any production worthy projects you have for the time being. We'll be focusing new open source feature development on A3 after it is released, but we'll continue to patch bugs and support existing A2 projects in our documentation and community channels for the remainder of our LTS commitment (through the end of 2023). We can provide additional support beyond that time with an Enterprise Support SLA ([contact us to learn more] (https://apostrophecms.com/contact-us)).

###When will I be able to migrate to Apostrophe 3?
We recommend waiting to migrate your projects to A3 until after we've released our stable version in Q1. We will be upgrading [our library of extensions and integrations] (https://apostrophecms.com/extensions) to A3 over the course of the year, so some projects may want to hold off a bit longer to get the benefit of these upgraded modules.

###What makes A3 different from A2?
We suggest diving into our documentation, which details the [major changes] (https://a3.docs.apostrophecms.org/guide/major-changes.html), [new features] (https://a3.docs.apostrophecms.org/guide/whats-new.html), and [features yet to come] (https://a3.docs.apostrophecms.org/guide/coming-soon.html).