← All projects

Menpub

Menpub connects restaurant menus from point-of-sale systems to websites through a standardized menu API. Restaurant owners, designers, and website builders can use existing menu data without manually copying items and prices.

Anysoft built the Rails application, menu management workflow, integration infrastructure, and website-builder handoff. Each client can manage multiple menus with separate connections, private design briefs, and reference images. A menu explorer lets builders preview imported content, select sections, and generate tailored website-building instructions.

Menpub homepage captured from the public staging environment.
Menpub homepage captured from the public staging environment.

Manage menu connections

Source connections and destination setup for a menu.
Source connections and destination setup for a menu.

Import once, serve a standardized menu

Square catalog import, OAuth, saved menu snapshots, and catalog-change webhook handling are implemented. Fresh snapshots answer menu requests without another provider call. Temporary provider failures can use the last usable snapshot; authentication or permanent failures require recovery.

Menu requests and Square responses

A website or menu explorer requests menu data from Menpub. If no usable snapshot exists or it has expired, Menpub requests Square catalog data. Square returns the catalog; Menpub standardizes and saves it and returns menu JSON to the website or explorer. A fresh snapshot bypasses Square. Temporary provider failures can serve the last usable snapshot with a retry delay; authentication or permanent failures require recovery. Concurrent refresh requests share one fetch.

  • Website / explorer → Menpub: Menu request.
  • Menpub → Square: Catalog request.
  • Square → Menpub: Catalog response.
  • Menpub → Website / explorer: Menu JSON.

React to changes without fetching in the webhook

Verified catalog-change events expire matching snapshots. Duplicate or older events are handled, and unknown merchants or unsupported events are acknowledged without triggering an import. The next menu request refreshes the snapshot.

Catalog changes expire saved menus

Square sends Menpub a catalog-change notification identifying the merchant and catalog update. Menpub verifies the signature and handles duplicate or older events. Matching menu snapshots expire. Unknown merchants and unsupported events are acknowledged without importing. This webhook does not fetch the catalog: a subsequent menu request refreshes it.

  • Square → Menpub: Webhook.
  • Menpub → Saved menus: Expire snapshot.

Give builders the right menu and design context

The explorer generates instructions for selected menu sections and available design context. The user copies these into their chosen website builder. The resulting site reads menu JSON from Menpub.

A manual handoff to the website builder

Menpub generates instructions for a user-selected set of menu sections, including the menu API and available design context. The user copies the instructions and supplies them to a website builder manually. The resulting website requests menu data from Menpub. There is no automatic API connection to a named AI builder.

  • Menpub → User: Instructions.
  • User → Website builder: Manual handoff.
  • Website builder → Website: Build website.
  • Website → Menpub: Menu request.

Let’s discuss your project.

Tell us what you need to build, maintain, or automate.

Get in touch