Case study

The Local by Masrawy

A PWA built for a café, butcher, and market in Mississauga. Loyalty points, pickup ordering, and a personalized home screen. Designed and built end to end.

Role
Product Design & Development · Ragheeb Designs Inc.
Timeline
Freelance
Tools
Figma · React · TypeScript · Supabase · Tailwind CSS · Vite
Outcome
Live production app, commission-free ordering for real customers
  • PWA
  • Mobile
  • Loyalty
  • F&B
  • Full-Stack

Overview

The Local needed their own ordering channel. They were on UberEats and paying commission on every order, with no way to know who their customers actually were. The ask was to build something that felt right for the brand and worked reliably day to day.

We built a Progressive Web App that lives on the customer's home screen, no App Store involved. Browse the full menu across three product lines, place a pickup order, earn loyalty points, and reorder your usual in a couple of taps.

Live app — tap and scroll to explore

The Challenge

Most of their digital orders were going through third-party delivery apps. That meant a commission cut on every transaction, no customer data, and no way to build any kind of relationship with regulars. People who came in three times a week were essentially strangers in the system.

There was also no pickup ordering option at all. If you wanted to grab something on your lunch break, you either showed up and waited or called ahead. For a busy spot, that's a real friction point.

Why a PWA

We went with a PWA instead of a native app for a few practical reasons. There's no app store submission process, no review cycles, and no 30% cut going to Apple or Google. Updates ship instantly. And for a customer who's never heard of the app before, installing it is as simple as tapping "Add to Home Screen" from the browser.

The stack is React, TypeScript, and Supabase on the backend. Supabase handled auth, the database, and row-level security, which meant no custom server to maintain. Tailwind kept the UI consistent without a lot of overhead.

Design Decisions

Loyalty points on the home screen

Points are visible the moment you open the app, not tucked away in a Rewards tab. The thinking was simple: if customers don't see their balance regularly, they forget it exists. Putting it front and center makes the program feel real without any extra taps.

Order Again

The home screen pulls in the customer's recent order items so they can reorder with one tap. For regulars who get the same coffee and pastry every morning, this cuts the whole flow from two minutes to about five seconds. Adding an item from that section shows a quick toast confirmation so it feels responsive without interrupting anything.

Pickup only

Delivery isn't set up on their end yet, so we didn't add a delivery option. Instead of showing a disabled toggle or a greyed-out field, we just didn't put it there. The checkout goes straight to pickup time selection. It's a simpler flow and there's nothing to confuse anyone.

The App

Home

Personalized welcome with your first name, current points balance, and your recent orders ready to reorder.

Home Screen

Order

Three tabs for Café, Butcher, and Market. Item cards with photos, descriptions, and prices. Cart count updates live in the header as you add things.

Order Screen

Cart

Order summary with loyalty discount applied, tax, and total. Schedule Pickup lets you pick an ASAP window or a specific time.

Cart Screen

Rewards

Current points balance, a progress bar toward the next reward, and available rewards to redeem. Points land automatically after an order goes through.

Rewards Screen

Profile

Account details and full order history. Editable name and email. The order history is also what powers the Order Again section on Home.

Profile Screen

Results

The app is live and being used for real pickup orders at their Mississauga location.

0%
Commission on direct orders, vs. 20 to 30% through third-party platforms
1 tap
To install from the browser, no App Store needed
Live
Real customer orders going through daily

Learnings

A few things stood out on this one. PWA is genuinely underrated for local businesses. The install experience is good enough, updates happen silently, and you're not splitting revenue with a platform on every transaction.

The pickup-only constraint actually made the product better. Removing the delivery path simplified the checkout significantly and there's been no pushback from customers. Sometimes the right call is just not building the thing.

What's next

  • Clover POS integration so the menu stays in sync and orders land directly on the terminal.
  • Push notifications for order status updates.
  • Delivery support once the logistics are figured out on their end.

Conclusion

This was a full end-to-end project, from figuring out what the client actually needed to shipping something their customers use every day. The goal was never to build the most feature-rich ordering app. It was to build the right one for where they are right now, with room to grow into.

Continue exploring

More work that pairs rigor with craft

Open another case study or return to selected work on the homepage.