I'm working on a small HTTP+JSON-based service and I desire a single supervision tree. I'm confused about when to embed yaws and when to use yapps. Is there a set of criteria I should look at to help me decide?
Embedding and yapps are somewhat orthogonal, since you can have both (or neither).
Embedding typically occurs when you have an application that requires client access via the web. For example, I work at Basho, and the Riak database embeds Mochiweb (but I also have a branch supporting Yaws) for exactly this purpose. The opposite of embedding is to run the yaws shell script to execute a stand-alone server.
Yapps can be handy when you have existing Erlang applications that you want to integrate into a Yaws system, whether embedded or stand-alone. I don't think they're used much, though, since the likelihood of having something at hand that fits well is low. I think most people tend to use appmods rather than yapps.