Oh, right. I read some comments below and figured that it takes JSON and dynamically renders the template client-side, which seems very unnecessary. Why not just generate HTML? Does Jekyll work that way too?
Punch generates static HTML pages using Mustache and JSON, which can be served from a server. Apart from that Punch's renderer can also be used on client-side to render dynamic content. This is elaborated with an example, in the blog post.