Ckeditor5-phoenix - CKEditor 5 wysiwyg integration for Phoenix

Phoenix has great tooling overall, but one thing that’s still lacking is a solid, plug-and-play integration with a modern WYSIWYG editor. Most solutions floating around are partial, outdated or rely on plain JS embeds with no real LiveView support.

So I built one:

This library wraps CKEditor 5 in a LiveComponent.

I’m open to feedback and happy to review PRs - feel free to contribute!

12 Likes

Where do the files go for uploads?

It depends on your uploader plugin. The default preset embeds images as base64. It’s possible to override it and use SimpleUploader that sends file to specific endpoint.

1 Like

I’ve just released version 1.10.1 with the following improvements:

  1. Stability fixes – the integration no longer crashes when a component is rapidly unmounted before it’s fully initialized.
  2. Editor watchdog support – the editor can now automatically recover and restore data after a crash.
  3. Context & clustering support – added the context watchdog and the ability to cluster multiple editors.

More details on GitHub: GitHub - Mati365/ckeditor5-phoenix: 🚀 CKEditor 5 for Phoenix - smooth WYSIWYG integration for Elixir apps! ⚡ Works seamlessly with LiveView or traditional forms. 💡 Easy setup, supports custom builds, dynamic loading, and localization. 🔧 Plug-and-play modules, JS hooks, and full customization support. 🎯 Ready for both open-source and commercial use!

4 Likes

Great stuff! I have question - is there some kind of tutorial about implementing it in a form?

1 Like

My apologies, did not read the readme to the end… Thanks for that!

1 Like

Looks great! Will Phoenix 1.8 be supported anytime soon?

It should work ootb.

pon., 15 wrz 2025, 17:36 użytkownik Dominique Lebrun via Elixir Programming Language Forum <noreply@elixirforum.com> napisał:

It doesn’t because the phoenix dependency is restricted to ~> 1.7.21.

You are right. I’ll bump it today. Thx!

wt., 16 wrz 2025, 15:41 użytkownik Dominique Lebrun via Elixir Programming Language Forum <noreply@elixirforum.com> napisał:

I released fix in 1.13.0

Thanks! I’ll try it as soon as possible.