Build a restaurant menu webpage from an excel spreadsheet with Piatto

Building a very basic menu page for a restaurant website without paying recurring SaaS fees for a more extensive solution is remarkably difficult.

Having learned to code growing up, I have always responsible for managing the relatively basic websites for my parents’ takeout restaurants in Manhattan. I built these websites on Weebly, so they actually require little engineering prowess. The restaurants websites do not even have online ordering functionality (all of our digital orders go through Seamless and UberEats), so the websites really are pretty simple.

One would think that the most natural solution to building a menu it to just type it in the website platform’s text editor. In practice, this proves even more complicated than formatting a resume. While text editing tools on these platforms work well for writing free flowing paragraphs, they are not so effective at menu-style formatting. The items, prices, and descriptions all need to line up perfectly and look consistent throughout. As layouts for webpages changes with screen size, this proves very non-trivial. Even making simple changes like removing cents digits from prices (“$12.00” to “$12”) or adding gluten free and vegan symbols is very manual. More complicated design changes require starting nearly all over again.

An easy shortcut is to just upload scans of the restaurant’s physical menu to the website. This is what I initially did for the restaurant websites. Of course, this was far from ideal. The menu images required customers to zoom in, which was onerous on desktops and intolerable smartphones. Customers also could not CTRL+F to search menu names or ingredients like they can on a text-based menu. Finally, crawlers could not interpret the content in the menu images creating missed opportunities in Google’s search results.

Surprisingly, I could not find a basic self-serve tool that makes menu creation easy. Locu used to be a fantastic solution before it was acquired GoDaddy. The service would manually translate an uploaded menu image to an editable data structure from which it could generate an online menu iFrame as well as a PDF export of the menu. It was also free to use for the first three menu uploads. Unfortunately, Locu has not been maintained since it acquisition and most of its features no longer work.

Last week, I decided to just write my own python script to convert a CSV file of menu items to a fully formatted HTML menu. I then found a data-entry specialist on Fiverr to type an excel version of the menus in the appropriate format. I saved the excel to CSV, ran the script and copy and pasted the generate HTML to a code snippet in Weebly.

Piatto is a free to use and open source on Github. I would thrill to see the repository extended to support additional functionality such as different design options, menu item photos, non-USD currency prices, and PDF export. Needless to say, pull requests are welcome and encouraged.

If you use the script, add a link to your menu on the repository’s README. If you want to create a menu, but are not tech-savy or just need help, ping me.