You can't change the hosting framework of Observable, so you are given a search feature, a standard library, a coding editor, and you have to accept it and live in your sandbox. But with Lopecode the framework is implemented in userspace so you can add your own editor, code search etc. To get those kinds of features working in Lopecode, there is more meta-programming facilities than Observbale. Though, because Lopecode it compatible with Observable, in a technical sense those facilities are now also available there too through the userspace libraries Lopecode publishes e.g.
observablehq.com/@tomlarkworthy/runtime-sdk. But you can't really do things like
annotate properly in Observable, it has no self-serialization so it forgets your annotations, but with Lopecode it can reserialize its own runtime and remember changes. The academic writeup of what I think makes Lopecode unique is called
"source-last" programming.