Skip to content
Ruby Foundry

SamplesDemo project

Website to app

A restaurant's website → phone app.

For: A restaurant.

Build newApps and websitesIn the works

Live demo coming soon. The demo is built and working; the screenshots on this page are from it, with made-up data.

Before

Before: Pocket Moon's old laptop website, with a menu to download as a 2.4 MB PDF and "Call us at (555) 010-2233" to order for pickup.
Open full size: Before: A PDF menu and a phone number for orders.

A PDF menu and a phone number for orders.

After

After: the Pocket Moon app on a phone, with a Start an order button, today's specials with Add buttons, and a stamp card two stamps from $10 off.
Open full size: After: An app on the phone, with ordering and rewards built in.

An app on the phone, with ordering and rewards built in.

The problem

Pocket Moon is a busy neighborhood noodle bar with loyal regulars and a website from 2014.

  • The menu is a PDF. It still lists last spring’s prices and a dish that left the menu months ago, because updating it means finding whoever made it.
  • Ordering for pickup means calling (555) 010-2233. On a Friday night the phone rings while the only free hands are carrying bowls.
  • Customers stand at the counter asking “is mine ready?”, and regulars keep asking the same thing: “do you have an app?”
  • Loyalty is a paper stamp card that lives in someone’s other jacket.

How we approached it

We start with what the restaurant already has, the menu, the hours, the brand, and the people who already love the place, and we’d run it as a three-week project:

  • Week 1: the website audit and the menu, moved into one place. We go through the old site with the owner and list what customers actually come for: the menu, the hours, and a way to order. The menu moves out of the PDF into a database the owner edits herself, so the app can never go out of date the way the PDF did.
  • Week 2: ordering and the kitchen’s board. A phone-first menu, a bag, pickup times that only ever fall inside opening hours, and a board by the pass that shows each order as New, Cooking, or Ready. The kitchen tries it during a real service before anything is public.
  • Week 3: favorites, rewards, the “ready” notification, install, and handover. Hearts on dishes, a five-stamp card that replaces the paper one, the notification the moment an order hits the shelf, “Add to Home Screen” instead of an app store, and two guides.

One rule held throughout: the price a customer pays is the price on the menu right now. The app on their phone never gets to decide.

What it does

  1. Order ahead

    Browse the menu by section, add dishes, and pick "as soon as possible" or any 15-minute pickup time today or on the next open day. The menu is the owner's live menu: a dish marked sold out a minute ago can't be ordered.

  2. Pick a pickup time

    Choose a pickup time, then give a name and an email. You pay when you pick up.

  3. Know when it's ready

    The order page moves from Received to Cooking to Ready while you watch. When the kitchen taps Mark ready, your phone shows: “Pocket Moon: your order #1098 is ready. Come on in, it's on the shelf by the door.”

  4. Favorites and rewards, no sign-up

    Heart a dish and it waits under Favorites. Every order of $12 or more earns a stamp, five stamps take $10 off, and past orders have Order again.

  5. The owner's board

    New, Cooking, and Ready columns with one big button each, orders for later underneath, and today's count and takings at the top.

  6. Menu and hours, owner-edited

    Edit a price, mark a dish sold out or special, add a dish, or change the hours. Customers see it at once.

  7. Every message in one place

    The Outbox shows each email and notification exactly as the customer got it.

Technology used

Technology used in Website to app
Next.js and TypeScriptThe customer app, the owner's board, and the server code behind them, in one widely known framework.
PostgreSQLThe menu, the hours, orders, favorites, and stamps. It's also where prices come from when an order is placed, so the app on a phone can never set its own price.
An installable web app"Add to Home Screen" puts Pocket Moon on a phone with its own icon, opening full screen like a store app, with no app store review and every update live at once.
Phone notifications"Your order is ready" appears like any other notification, and tapping it opens the order.
date-fns-tzOpening hours and pickup times in the restaurant's time zone, so 11:45 AM is still 11:45 AM on the day the clocks change.
ZodChecks the checkout and the owner's menu form, and explains any problem in one plain sentence.
An OutboxEvery confirmation, "ready" message, and cancellation, as the customer saw it. Switching on real email (for example Resend) is one small, contained change.
Automated testsOver seventy quick checks on pickup times, rewards, prices, and races between the kitchen and the board, plus a robot that orders, gets notified, and edits the menu in a real browser.

Built to be handed over

Every project ends with two short guides, written for people rather than machines. The owner's guide explains, in plain words, how to run the software day to day. The engineer onboarding guide lets any developer you hire later find their way around the code, the hosting, and the data in an afternoon. You keep the code, so you are never stuck with us.

For this project, the owner's guide includes lines like this:

“To mark a dish sold out, open Menu and tap Sold out next to it. Customers see it grayed out with 'Sold out today'.”

What a project like this looks like

Scope

  • The menu moved out of the PDF into one place you edit yourself
  • Phone ordering and the kitchen's order board
  • Favorites, a stamp card, and a notification when an order is ready
  • The app on customers' home screens, no app store needed
  • An owner's guide and an engineer onboarding guide

From first call to finish

  1. A free 30-minute call
  2. A written, fixed quote
  3. A kickoff call within a week of signing
  4. 3 weeks of building, with a written update each week
  5. Launch and handover
  6. 30 days of fixes included

Typical total

about $11,000

Your own quote is written for your project and fixed before we start.