I've done a quick code review and analysis of the app during CKE5 team's hackathon and have a couple conclusions on what we should do to make it easier to maintain and more stable to use.
Remove the concept of LiveModelData. It seems to work, but it boosts the complexity. The easiest way out would be to use autosave + model as data. Slightly less performant: simple autosave.
Replace the custom autocomplete with the official one. Would resolve issues like #445 and bring other improvements that we made to the official autocomplete over the years (e.g. ability to toggle between heading levels).
Stability
Many of us were complaining about GH Writer sometimes not loading. There are two possible reasons that I noticed:
I discovered that GH Writer tries to remember the mode I was in (wysiwyg vs native) and when you refresh, load that stored mode. I use GH Writer on a daily basis and never noticed this. But I'm quite sure it might've contributed to my feeling that "it doesn't load".
There's a logic on the editor load that verifies whether the existing MD content can be edited in CKE5. If it discovers that CKE5 would contribute to data loss or distort the content a bit, it prevents loading the editor. It's pedantic and makes CKE5 not load in cases where nothing would be lost. It might perhaps be worth asking the user what they prefer.
In general, I'd recommend simplifying the integration. There's a ton of code in it already and my feeling is that it'd be more useful if it was dumber but easier to maintain and improve.
I've done a quick code review and analysis of the app during CKE5 team's hackathon and have a couple conclusions on what we should do to make it easier to maintain and more stable to use.
I pushed some changes to https://github.com/ckeditor/github-writer/compare/hackathon-2023 (mainly: updated CKE5) too.
Maintainability
Stability
In general, I'd recommend simplifying the integration. There's a ton of code in it already and my feeling is that it'd be more useful if it was dumber but easier to maintain and improve.