Case study · Software

Plate.

A restaurant website platform we designed, built and run. Owners keep their menu, prices, photos and hours current in one place, then publish the changes to their own website, without calling a developer.

Type
Multi-tenant SaaS platform
Our role
Product, design and development
Status
Live · early access
Sold as
Plate, powered by CravEngine
app.cravengine.com
Plate's Today screen: the restaurant's day, two changes waiting to publish, and upcoming posts
The Today screen: what’s happening, what hasn’t been published yet, and what’s coming up. Shown with a demo restaurant.

The challenge

Restaurants change daily. Their websites don’t.

Independent restaurants change prices, specials, hours and dishes all the time. Their websites rarely keep up, because every update means waiting on a developer or fighting a website builder.

So the site drifts: old prices, last season’s menu, the wrong holiday hours. Customers notice before the owner does.

The goal for Plate was simple to say and hard to build: one place where an owner changes something once, previews it, and publishes it to their own website safely.

What we built

A full product, not a prototype.

  • A menu and price editor with dishes, descriptions, tags and photos, organized by section
  • A preview of exactly what customers will see, and an explicit Publish step so half-finished edits never go live
  • Publishing safeguards that refuse to push an empty or broken menu to a live website
  • Importing an existing menu from a link, with uncertain items flagged for the owner to confirm
  • Hours tied to real dates, and a photo library that shows which dishes still need a photo
  • Accounts that hold multiple restaurants, with role-based access for owners and staff
  • A customer list with consent and opt-out tracking, plus email and text campaigns
  • Post ideas and social scheduling through a Make → GoHighLevel pipeline
  • Subscription billing through Stripe

All screens use Plate’s demo restaurant. No client data is shown.

Under the hood

Engineered to be trusted with a business’s data.

  1. 01Data separation by design

    Postgres on Supabase with row-level security, so each restaurant’s records are isolated at the database level, not just in the interface.

  2. 02Server-side work stays server-side

    Publishing, billing and messaging run in server functions. API keys and secrets never reach the browser.

  3. 03Safe publishing

    Changes are staged, previewed and checked before they reach a live website. A menu that would publish empty is blocked.

  4. 04Tested on every change

    An automated test suite runs in GitHub Actions on every proposed change, covering access rules, publishing and messaging consent.

  5. 05Honest status reporting

    When Plate hands a message or post to another service, it records exactly that, and never claims something was delivered when it can’t confirm it.

Where Plate stands today

Plate is live in production at app.cravengine.com and in early access. It’s our own product, sold to restaurants as Plate, powered by CravEngine, our restaurant brand. The same team that builds client software builds and runs Plate.

Next project

Lead routing for VIP Real Estate

→Start a project

Have something in mind?
Let’s build it.

Whether you’re launching a new idea or improving how an existing business runs, tell us what you’re trying to create. You’ll get an honest answer on what it takes — even when the answer is a tool you can already buy.

gary@prowebdynamics.net(720) 256-3690

Tell us about your project