We structured each of the page layouts as follows:
<!DOCTYPE html> <html> <head> .. headerStuff </head> <body> .. pageHeader .. main content .. bottomOfPageStuff </body> </html>
The page content therefore has two visible rows: the header and the main content. At the bottom of the page are invisible things like the JavaScript files for Bootstrap and jQuery.
No change is required in views/layout.hbs. One might think the container-fluid wrapper would be in that file, with the rows and columns specified in the other templates. Instead, we'll do it in the templates to give us the most layout freedom.