There are more and more ESM-only modules, which can only be used in cocalc with brittle hacks. If we somehow were to move all of cocalc from commonjs to esm modules, things might be a lot better. I don't know how hard this is; the main issues probably involve our coffeescript code at this point.