Super quick doc on the Rivet form package. Forms directly emit HTML so if you want to format them in a table or something, you've got to be emitting your table around your form calls. See the example. The supported field types are: checkbox text password hidden submit button reset image radiobuttons select textarea And the new HTML 5 types that may not be in every browser (but are in the iPhone): color date datetime datetime_local email file image month number range search tel time url week form myform -defaults tag -method post -action view_photo.rvt This defines a form called "myform", says that default values can be taken from an array named "tag", specifies that the submit method will be "post" and that the view_photo.rvt URL will be invoked upon submission. myform start This starts emitting the form. It will generate the "