Compiling your appmod is a matter of calling the erlc compiler. You then install the resulting beam file into a load directory known to Yaws, which are specified in the yaws.conf file using the ebin_dir directive:
ebin_dir = /path/to/some/ebin
ebin_dir = /path/to/another/ebin
You can specify your own paths here. Multiple ebin_dir settings are cumulative — all such paths are added to the Yaws load path.
For actively developing your appmod, with automatic reloading of your changes, you can use something like the sync project.
The URL for your appmod is also specified in yaws.conf, in a server block, using the appmods directive. You can find examples in the Yaws documentation. For example, if you want your appmod to control the whole URL space for a server, you specify / as its URL path:
<server foo>
port = 8001
listen = 0.0.0.0
docroot = /filesystem/path/to/www
appmods = </, myappmod>
</server>
Note also the optional exclude_paths directive you can specify in an appmods setting, typically used for excluding paths storing statically loaded resources. For example, the following setting means that myappmod handles the entire URL space / except for any URL path starting with /icons:
appmods = </, myappmod exclude_paths icons>