TYPO3 Neos and Create.js
My original idea had been to just build a new content editing interface for Midgard, but as they also were interested, we ended up removing the Midgard dependencies and building Create and VIE as a fully CMS-agnostic interface, a key part of decoupled content management.
Back then TYPO3's next-generation content management system was still going by its codename Phoenix. Its user interface plans and techniques shifted, but by July we felt quite optimistic about the integration.
I went to the TYPO3 Developer Days in Switzerland where we discussed both Create and PHPCR. The ideas from those discussions were gathered in what I called my secret agenda for PHP content management systems.
But then progress stalled for a while.
We met with the TYPO3 developers in the Mountain View Aloha Editor conference, but their plans were still shifting.
In summer 2012 we met again in IKS's Salzburg workshop, and things really started happening. Rens from the Phoenix team joined IKS as an Early Adopter and we started figuring out how to fit Backbone-based Create in TYPO3's Ember-based user interface.
To finalize things, we joined TYPO3 hackathon that was held on a houseboat in Copenhagen. In the interview video from that event we're talking about the integration work we did:
This video is quite remarkable. When it was first released, I wrote:
Two years ago it would've been inconceivable that a Midgard developer appears in a TYPO3 product launch video
Every major CMS project that has adopted the Create user interface has ended up improving the Create and VIE story, either directly or because they've helped by testing and reporting bugs. This has happened with Midgard, Symfony CMF, OpenCms, TYPO3, and as I'm writing this, with Drupal. This is how cross-project collaboration should work!
Rens from the TYPO3 team blogged about the Create.js integration story earlier. While projects like Midgard and Symfony have used Create as-it-is, the TYPO3 case was a bit different:
- TYPO3 Neos uses a comprehensive set of different possible entity types to construct pages. This is why we ended up improving Create's collection handling quite a bit
- Since Neos has its contents in a proper Content Repository, all edits happen in user's personal draft workspace. Create's autosaving mode is very useful there
- Neos has a very specific user interface, with many tools like breadcrumbs and metadata editors that fall outside inline editing but still need to interact with Create
- Editor selection and collection handling needs meant having to inform the front-end system about all the content types and rules used by Neos
All of this meant very hectic work on the houseboat!
Phoenix got rebranded to TYPO3 Neos and an alpha was launched in October 2012. We went with Rens to the TYPO3 conference in Stuttgart to give a talk on Create and the new inline editing features powered by semantic technologies. Video of the presentation is now available:
There is also a demo site of Create-powered TYPO3 Neos available. With the work that happened with technologies like RDFa and Create.js, Neos is well on the way towards being one of the premiere decoupled CMSs. I still hope we can help them to migrate to the PHP Content Repository standard instead of running their own.