Webterm is an HTML5 remote desktop. Like drawterm, it is a remote desktop login to a Plan 9 CPU server. It tries to be backwards-compatible with the draw device for graphics, so it can run most existing graphical Plan 9 programs. It also has a dom device for HTML5 programs.
Drawterm is a bit hard to explain without some experience with Plan 9. It's basically a lot of the functionality of a Plan 9 kernel implemented in portable C for non-Plan 9 systems. It's a remote desktop program, but it's also more. On Plan 9, the GUI is an integral part of the system, unlike on most Unix-like operating systems. Graphics are handled through the draw device, at /dev/draw. Typically the kernel sets up a framebuffer and connecting to the draw device allows programs to draw graphics primitives to the framebuffer, instead of accessing the screen directly. For example, there is a specific message to the draw device for drawing an ellipse. Drawterm is a draw device and a few other components of a Plan 9 terminal used for logging into a Plan 9 CPU server from a different system. Drawterm differs from a Plan 9 terminal in that it cannot actually run Plan 9 programs, all of the programs run on the CPU server. For people familiar with SSH, drawterm does everything SSH does for a system where graphics, a mouse, and networking were always part of the design.
9P is a bytestream filesystem protocol. It can be transported over basically any link, even inside another 9P file. It's a simple protocol with messages for filesystem operations. A file in 9P is a generalized system object that can be opened, read from, written to, closed, etc. A file isn't necessarily data on a disk, it can represent other things. For example, writing raw PCM samples to /dev/audio causes them to come out of the speakers.
Plan 9 is in a unique position to exemplify good software engineering, even for modern applications. The Plan 9 community knows very well the history of grid computing and terminals, an almost-forgotten precursor to cloud computing and browsers. The browser was never really meant for any of the things we see today, and a real desktop inside of a modern browser is simply reaching too far.
The community viewpoint of the many drawbacks of browsers were made more abundantly obvious in creating webterm than ever. First of all it wasn't standardized very well at all. The first step was an innerHTML file to "draw" html to the window, and soon it became apparent textarea and input tags don't work that way. There are probably all sorts of other edge-cases which do not work but for which it would be very easy to add functionality.
Cross-site scripting attacks are a huge concern with webterm. For a desktop in a browser, what can you do if you want to include things from other sites? I propose the <sframe/> tag, a secure iframe which is basically all the same functionality as a separate tab. It would be a container as much as possible, the same as a tab. It would ideally have absolutely no interaction with the page it was on, aside from being an opaque HTML element on it.