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:
🚀 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!
This library wraps CKEditor 5 in a LiveComponent.
I’m open to feedback and happy to review PRs - feel free to contribute!
14 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:
Stability fixes – the integration no longer crashes when a component is rapidly unmounted before it’s fully initialized.
Editor watchdog support – the editor can now automatically recover and restore data after a crash.
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
dlebrun
September 15, 2025, 3:26pm
7
Looks great! Will Phoenix 1.8 be supported anytime soon?
Mati365
September 15, 2025, 3:48pm
8
It should work ootb.
pon., 15 wrz 2025, 17:36 użytkownik Dominique Lebrun via Elixir Programming Language Forum <noreply@elixirforum.com > napisał:
dlebrun
September 16, 2025, 1:31pm
9
It doesn’t because the phoenix dependency is restricted to ~> 1.7.21.
Mati365
September 16, 2025, 2:01pm
10
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ł:
dlebrun
September 18, 2025, 6:04am
12
Thanks! I’ll try it as soon as possible.
Mati365
January 4, 2026, 11:40am
13
I released 1.15.5 a version that:
Fixes lack of HTML5 required validation of hidden inputs when used with traditional forms.
Adds NPM-free mix ckeditor5.install task that allows to install ckeditor5 assets without Node environment.
Added crossorigin attributes to cloud assets tags.
Added extra_imports attribute that allows to extend importmap tag generated by ckeditor5_cloud with custom entries.
Bumped default version editor to 47.3 which is the LTS version of the editor.
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!
Mati365
January 17, 2026, 5:34pm
14
I released 1.16.0 version that:
Adds custom upload adapter and elixir controller that handles uploading of images.
Allows specifying upload_url in <.ckeditor5 component. If your app has global config, but certain editor needs base64 image inlineing then upload_url=”base64” disables global config and inlines image.
fyi @dogweather
ouven
January 19, 2026, 5:53am
15
Hi, just wanted to say: thanks. I use that lib for our club homepage cms and totally love its ease to use!
1 Like