flanger.dev

Opinion TYPO3 V12 and the CkEditor 5 Dilemma

The transition from CkEditor 4 to CkEditor 5 in TYPO3 V12 has caused much debate among TYPO3 developers. For many of us, changes like these are usually seen as progressive steps that help us stay on the cutting edge of web development technology. But in my opinion, this particular upgrade has done more to tangle us up in complexity than to truly advance our toolset. It feels less like a productive step forward and more like a tedious puzzle we didn't need to solve.

Sea at night with dark clouds and bright lightning

Unpacking the Complexity of CkEditor 5

Transitions to new technologies often involve a learning curve, and the move to CkEditor 5 in TYPO3 V12 is no exception. The move offers some new possibilities, but it also introduces a level of complexity that can't be ignored.

Complexity is not inherently negative. After all, challenging environments frequently lead to rewarding breakthroughs. But it's worth noting that even the experienced TYPO3 core developer team had trouble with this new version. CkEditor 5, in its attempt to provide us with a more powerful and versatile tool, has created a significantly complicated system that requires a deep understanding of its internal mechanics to fully exploit its potential. Just take a look at this diagram, with which they want to explain their "editing engine" to us.

CkEditor 5
CkEditor 5 Diagram of the “Editing Engine”. Pay special attention to the "Quirks" section.

My question: Does this added sophistication really improve our workflow, or does it just add an unnecessary level of complexity? As developers, we strive for efficient and streamlined processes. We want tools that enhance our productivity without bogging us down in complexity. In the case of CkEditor 5, I can't help but question if we've struck the right balance.

Plugin Compatibility

One of the obstacles we've encountered in the transition from CkEditor 4 to CkEditor 5 is the issue of plugin compatibility. With the new upgrade, plugins developed specifically for CkEditor 4 are no longer compatible. For many of us who rely on specific plugins for our daily work, this is a significant challenge.

But let's take a step back. If we have to redesign our plugins to accommodate a new RTE, couldn't we explore alternatives to CkEditor 5? Since compatibility with previous plugins has already been broken, the question arises: why not consider switching to another Rich Text Editor like Tiptap?

We have to ask ourselves whether the gains we achieve with CkEditor 5 are worth the trade-offs of spending time and resources on creating new plugins from scratch, especially when there may be other RTE's available that can meet our needs with potentially less complexity.

The Dilemma

Since TYPO3 V12 has been available for a few months now, developers have started to migrate - or rather rewrite - their existing CkEditor 4 plugins for version 5 and have already spent hours doing so. Now, if the TYPO3 core decides to use a new RTE for version 13, everything will have to be rewritten again. This will hurt the argument that TYPO3 is becoming easier to upgrade, and controversies will arise again.

But if TYPO3 sticks to CkEditor 5 and beyond, it'll always be the CMS that takes hours or even days to customize, and it'll raise the learning curve (which was actually falling) for new developers again.

Going beyond CkEditor

With a rich ecosystem of Rich Text Editors available, it's worth exploring how other RTE's might stack up against the CkEditor 5 experience within TYPO3.

TipTap

This RTE offers developers a fresh approach for text editing. Tiptap is designed to be flexible and high-performing, striking a balance between innovation and practicality. Developers can select specific modules based on their needs, resulting in a more streamlined tool that has better performance. Also, since Tiptap is headless, it is separated from the front-end, providing greater flexibility for developers in the implementation process.

The Statamic CMS that I use for my personal projects also uses TipTap. The developers at Statamic have created a really nice editing experience with it. So of course I'm biased here, but I've seen it in many other projects, and it could be the right choice for TYPO3 as well, so the TYPO3 core could come up with its own editor frontend.

Conclusion

Although it's very late, I think it's best to put the brakes on now and not invest any more developer time to continue working with CkEditor 5 in the core and start looking for an alternative RTE for TYPO3 V13. Even if this means that all plugins have to be rewritten again for TYPO3 V13. For me, this is the only approach that will benefit everyone in the future.

But what do you think?

I'd love to hear your thoughts on this topic, as I don't have too much experience with CkEditor anymore and can only speak for my colleagues that are struggling with it. I think it's important to keep track of the issues and talking about it on events or social media.