I ran through the documentation at http://wiki.github.com/jchris/couchapp/manual, and set up a test site. I looked through the test, and saw a buncha stuff I didn’t write. I like that and don’t like that. I find app builders lead to cruft laying around—like I noticed jquery 1.2.6 when the latest is 1.3.2 if I remember correctly. And from the documentation on the wiki, I didn’t really understand what all the files were. Of course there is no data in the DB, I expected a no-op application, but I didn’t see even *why* all that stuff was there in the lib and vendor and so on.
Then I finally hit upon the actual README at http://github.com/jchris/couchapp/tree/master. Perhaps it is just years of reading text books, but I found this page to be much more helpful. I think I get it. All the library stuff gets shoved into the couchdb as part of the application. Then the couchapp glue uses macros to leverage the libraries. Kinda like lots of other programming languages do it, but probably closest to how most HTML templating languages work. You follow the template construct, for example,
// !json lib.templates.post
Apparently these macros can be used for views (map, and I assume reduce), and it says lists and shows, but I am not yet familiar with those two constructs.
As I said at the start, lots to digest.