Categories were baked into config/<site>.site.json, so adding one meant a rebuild and a redeploy. They are now data: data/sections.json, seeded from the config the first time, and managed in the admin (add, rename, reorder, remove). A category's web address is fixed when it is created because that is what a QR code points at, and a category cannot be removed while it still holds menus. The landing and the top bar were the ugliest parts. The landing was a column of hairlines with tiny meta — a broadsheet, and the paper that makes this app worth looking at was nowhere on it. It is now a shelf: each category is a row whose right edge is a sliver of that menu's first page, bleeding off the screen, with the shelf edge in brass and the name in heavy tight Archivo. The bar was a row of teal pills that would not survive more categories: it now names the menu you are reading and opens a sheet listing the rest, each with its own paper sliver, and the current one is the only teal thing on screen. The sheet is a link to the landing page, so navigating still works without the script. Also fixes the category manager's own layout, which I shipped unstyled, and the markup contract the route tests described.
2.4 KiB
Menu Publishing
Publishing the customer-facing menus of several brewery-restaurant Sites. A Site serves photographed pages of its printed menus, grouped into Sections and published as Menu Sets.
Language
Structure
Site: One restaurant's customer-facing menu deployment, with its own brand, Sections and content. Each Site runs its own instance of the app. Avoid: brand, tenant, deployment, instance
Section: A top-level category of menu content that customers choose between, such as Food, Bar or What's On. Sections are content: the owner adds and renames them in the admin. Avoid: type, tab, folder
The admin, and the owner, say category where the code and this glossary say Section. The two words mean the same thing; the code keeps Section so the storage layout, routes and manifests stay consistent.
Menu Set: One complete set of Pages published together for a Section, with a label and an optional valid-until date. Avoid: menu, version, batch, upload, album
Page: One image within a Menu Set, in a deliberate order; usually a photographed page of a printed menu. Avoid: sheet, slide, image, photo
Poster: A Page whose content is an event or seasonal creative rather than a menu, published in the What's On Section. Avoid: flyer, banner, creative
Publication
Draft: A Menu Set that has been uploaded but is not visible to customers.
Current: The single published Menu Set per Section that customers see. Avoid: live, active, main
Archive: A Menu Set that was once Current and has been superseded. Reachable by direct URL, never listed in customer navigation. Avoid: old menu, history, expired, past
Publish: The act of making a Draft Current, which archives the Menu Set that was Current before it. Avoid: release, deploy, go live
Images
Original: The uploaded image as stored, kept so that viewing images and thumbnails can be regenerated. Never served to customers. Avoid: source, master, full-size
Viewing image: The wide image shown on a Section page and opened by tap-to-zoom. Avoid: preview, display image
Thumbnail: The small image used only inside the admin. Avoid: preview, grid image
Surfaces
Landing page: The Site root, listing the Sections that have a Current Menu Set. Avoid: home, index
Admin: The password-protected area where a Menu Set is uploaded, ordered, previewed and published. Avoid: dashboard, CMS, back office