The Artefact framework supports collaborative applications using standard browsers, a lightweight general-purpose Java applet, and HTML representations of objects and actions. We present some aspects of Artefact's implementation, including enhancements to HTTP to support synchronous collaboration, the decoupling of input and output in the interaction protocol, and the user agents that bridge the gap between a browser and an application. We describe some of the characteristics that make it easy to create multi-user applications with Artefact, and illustrate this with a simple example application. Finally, we compare Artefact to some existing distributed application platforms.