contenteditable is incredibly painful to use, not standardized and different across browsers, and buggy in firefox
_Technically_, it requires a single HTML attribute.
If you want to build some sort of reactive, spreadsheet-like experience with cells and calculations, then yeah there's some inherent complexity in that.