For a full tutorial on how to build components using Soy templates, make sure to go through the Todo App tutorial.
This guide will explain some details about the integration between Metal.js components and Soy templates.
Note that Metal.js is template agnostic, so it's not necessary to use Soy at all. That said, we already provide a very good integration between Metal.js components and Soy, so if you like this template language you should give it a try.