This page will be able to save. It should have buttons, boxes, and more, and their editability should persist. Saving is automatically local (including a file list) until an upload clears the local copy. (this opens the door to guest access.)
The server will restrict the allowed tags to a subset such as b,i,u, button, and others. There are also restrictions on what attributes are supported. Custom elements with custom properties such as <template-box data-property> are okay. Neither script and style tags nor event handlers are permitted by the filter.
The server may deliver any html with any elements. There is no secondary protection against that. Programmer can edit server.
The client must deliver the article to the server in an acceptable format for a save to commit. It reads the nodes inside the page and generates friendly text.
Malicious code removed
Missing end tags fixed
Illegal nesting fixed
Rich formatting preserved
It is plain that the tool is not laid out as a massive graphical laboratory of widgets and design. It is just probably just text in the browser's default font. What's more, the html is a generic working format suitable for pasting into any other content.
When the file loads in editable mode, the tool immediately spins a more complex series of .html spans that are then inserted where necessary. Bolds and such are not htmlized, people use toolbars for that. (they could be :before and :after though.)