The long list
To find out what to evaluate I went through google and focused on lists assembled by others, as any really relevant editor for me must have a wide adoption so would appear on these lists. I found lots! of editors and many I didn't even catalog because they were too trivial, too old, only-one-guy using it, etc. Here's my long list
- Froala WYSIWYG
- PunyMCE, from the authors of TinyMCE
- YUI Rich Text Editor
- WMD – Markdown Editor
- Aloha Editor
- CKEditor (next generation of FCKeditor)
- Mercury Editor
- Raptor Editor
- Morrigan jQuery Editor
- Medium Editor
- jQuery Notebook
- Alloy Editor
Basically by applying my core management criteria (see post 2) like Open-Source / free, reasonable license, regularly maintained etc. I could short-list to the following:
Second Short List
I then tried them more in detail and also removed the ones which look great but don't have a wide adoption yet. This is tough as some like the Trumbowyg or ContentTools look really cool - but if you've worked with WYSIWYG for so many years you've learned that WYSIWYG is never really simple - there are thousands of micro-issues cross-browser or paste-from-you-don't-know where and these must all be solved. This only happens on widely used tools. I had high hopes in Aloha since there is also a commercial edition, but it too disappointed in real life. Some editors like the Raptor also got removed because they still pursued the old mix-design-with-content paradigm which is dead. So my second short-list is:
Final Short List: TinyMCE, CKEditor, Troumbowyg, Summernote
Again I filtered some more, based on library dependencies (jQuery causes unnecessary bloat + version conflicts if you have many components using it) and similar. Summernote had to go (jQuery), as did Quill and Medium. CK editor got back because the DNN strategy is now focused on it. In the meantime troumbowyg matured and got back on the list - but just as a backup plan. So here's my final list, in order of preference:
- TinyMCE 4.3+ (my favorite by far)
- CKEditor (alternative / backup plan)
- Troumbowyg (as backup plan)
- Summernote (if all else fails)
Conclusion: 4 Days to Discover the Obvious
It's a bit scary to say that I spent more than 4 days to evaluate something, just to arrive at the conclusion that the obvious answers (TinyMCE and CKEditor) were the best options. The more I tried the alternatives - which often appeared much more elegant - the more I discovered the old WYSIWYG flaws I thought were gone in modern implementations.
Why TinyMCE before CKEditor?
I think it's fair to say that both editors can be made to do what we need - and both have a very wide adoption across various platforms. Both can easily do all the simple stuff like bold, italic and more. Comparing numbers in GitHub, Downloads, Google-Trends doesn't help much either, as they all seem very similar. So basically either choice is valid.
What tipped the scale for me were five things:
- TinyMCE is the editor in Wordpress, so it's used in around 7+ million blogs and some websites. This is something to rely on, so that no matter what bugs appear, they will be fixed - even the tiny unimportant ones!
- TinyMCE 4 underwent a large refactoring in 2013 so it's "clean" again and dropped support for older browsers. It's also built with modern methodologies like AMD and nodeJS. This is a very good thing.
- CKEditor is being integrated into DNN by default but IMHO in such a way that I don't want to rely on it. The current paradigm is still the WYSIWYG = content-management and building on this is difficult. If I remove a bad-practice feature, people would demand it back and I don't have the energy required to explain why it shouldn't be there
- Since many features have been activated which shouldn't be, these will have bugs and need maintenance. For features which shouldn't be there - that's too high a cost…
- …and some features rely heavily on asp.net in the current implementation. Another no-go I don't want to build upon if I don't have to.
So in summary the fact that many DNN-people already use CK-editor the IMHO wrong way adds a very high "cost" both in getting people to use it the right way and in terms of unnecessary legacy load. On the other side I have a very modern, cleaned up, widely used editor without these problems which is at least comparable in everything I need. So it's a clear case for TinyMCE.
Next steps - Integrate
In the next steps I'll integrate it into 2sxc and see how it goes and if TinyMCE is as good as it should be…
Love from Switzerland,