- Platform
- Web App
- Duration
- 12 weeks
- Industry
- F/B sector / Hospitality
- Read time
- 6 min read
RaftLabs built Grubly, a SaaS food ordering platform that enables restaurants, cafes, and QSRs to accept direct online orders without paying third-party delivery commissions. Customers order by scanning a QR code: no app download required. Grubly processed 10,000+ orders and saved restaurant owners $5,000 in delivery platform commissions within the first 15 days of launch. The platform includes menu management, featured item promotion, multiple payment methods, and real-time order tracking for restaurant operators. Built in 12 weeks using NestJS, PostgreSQL, Hasura for real-time GraphQL subscriptions, and AWS.
Every order placed through a third-party delivery platform costs a restaurant between 15 and 30 percent of the order value in commission. For a cafe processing $30,000 in monthly orders, that is $4,500 to $9,000 leaving the business every month, paid to a platform that also owns the customer data and controls the ranking.
Grubly gives that channel back to the restaurant. We built it as a SaaS platform where restaurants configure their menu, enable QR code ordering, and accept payments directly. Customers scan a table QR code or a printed sticker and order from a mobile-optimized site: no app download, no third-party redirect. Grubly processed 10,000+ orders and saved owners $5,000 in commissions within the first 15 days of launch.

before & after
What changed
- Every online order placed through a third-party platform cost the restaurant 15 to 30% in commission, with no way to reduce that fee over time
- Customer data (names, order history, contact details) belonged to the delivery platform, not the restaurant; building direct relationships was structurally blocked
- Menu changes required updating multiple platforms separately; an item sold out or a price changed meant multiple logins and manual edits across every channel
- Restaurants had no visibility into which customers ordered most frequently, which items drove return visits, or which promotions moved volume
- Staff time spent relaying phone and in-person orders to the kitchen was a recurring overhead that grew with order volume
- Restaurant owners keep the full order value minus payment processing fees: no platform commission on direct orders placed through Grubly
- Customer contact information and order history accumulates in the restaurant's own account, enabling direct re-engagement and loyalty mechanics
- Menu updates go live across all QR codes immediately from one admin panel: one change, all tables updated
- Restaurant owners see order volume by item, payment method, and time period from a real-time dashboard
- Customers scan a QR code and order directly from their phone; the order routes to the kitchen display without staff taking it manually
What we had to solve
- 01
Getting customers to order through a QR code when they already have delivery apps installed
A new ordering channel only works if customers use it. The friction is low (scan the code, see the menu, tap to order) but the habit pull of familiar apps is real. The platform had to load fast enough on a mobile browser that customers did not stop and open a competitor app instead. That meant sub-second QR code landing pages, a menu layout that made item selection immediate, and a checkout flow with as few steps as possible. The conversion from scan to completed order was the metric that determined whether the product worked.
- 02
Keeping menu and order data in sync for restaurant operators managing peak service periods
A QR code menu that shows items already sold out, or an order management dashboard that lags during a lunch rush, undermines the case for switching from a system that worked reliably even if it charged more. The real-time layer had to push sold-out toggles, availability changes, and new order notifications to the kitchen display instantly. A five-second delay at peak service is long enough for orders to stack up and for staff to stop trusting the system.
outcomes
What we achieved
The restaurant was paying 15 to 30% commission on every third-party order with no owned channel and no direct access to customer data.
Without a direct ordering channel, the business had no alternative to platform fees, and every digital order came at a significant margin cost.
Manual order processing across multiple delivery platforms created errors, consumed staff time, and gave the owner no unified view of their order data.
Your restaurant is paying platform commissions on every digital order with no direct channel to customers?
What clients say
Most clients stay.
Some say so on camera.
Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.
Guests can directly order from their phone through this food ordering app. Complete contactless. Plus save us on staff required to take the orders. Everything stays digital so we know who are our guests.
the build
What we built
Grubly is built around one goal: a restaurant owner should be able to set up online ordering in under an hour and stop paying platform commissions from that day forward.
Customers scan and order from the table, no app download, no account required
Customers scan a QR code on the table, menu card, or printed sticker and see a mobile-optimized menu instantly. No app download prompt, no account creation required. The scan-to-order flow was optimized for the moment when a customer is sitting at a table and ready to order: minimal steps, fast load, direct checkout.

Owners update prices and promote specials: changes are live instantly across all QR codes
Restaurant owners update menu items, toggle availability, set prices, and promote best sellers or seasonal specials from a web admin panel. Changes go live across all QR codes immediately. The featured item feature lets owners surface high-margin dishes or limited-time offers in a dedicated position that customers see before browsing the full menu.

Customers pay their preferred way, fewer abandoned checkouts
Customers pay by card, UPI, contactless phone payment, or any method the restaurant enables. Payment choice affects order completion rate: customers who cannot pay their preferred way abandon checkout. Grubly's payment layer integrates multiple gateways so restaurant owners can activate the methods their customer base uses most without a separate integration for each.

Orders hit the kitchen display in real time; customer data belongs to the restaurant
Orders appear on the restaurant's kitchen display in real time as customers submit them. Restaurant owners see daily order volume, revenue by item, payment method breakdown, and customer contact details from the same dashboard. The customer data belongs to the restaurant, not to a delivery platform, enabling direct re-engagement for promotions, events, or loyalty programs.

Engagement
How we worked together
- 01Weeks 1–2
Discovery and scoping
We map the problem before writing code. Two weeks of technical audit, stakeholder interviews, and prototype — so both teams align on scope and risk before sprint one.
- 02Ongoing
Two-week Agile sprints
Each sprint ends with working software, not a status update. You review a real build, request changes, and approve before we move forward. No surprises at handover.
- 03Ongoing
Daily async updates
Slack for daily progress, Asana for task visibility, weekly video calls for decisions. You have full visibility without needing to attend every meeting.
- 04Final
Handover and warranty
Full code handover with deployment runbooks and documentation. Thirty-day warranty period for production issues at no extra cost.
stack
Why we chose this stack
- 01The order management backend handles concurrent order submissions from multiple tables, payment gateway webhooks, and real-time kitchen display updates simultaneously. NestJS's modular architecture kept each concern organized as the feature set expanded beyond the initial MVP.NestJS
- 02Menu items, order customizations, payment records, and customer history have relational dependencies that need transactional integrity. No order can be double-confirmed or lost when a payment webhook arrives out of sequence.PostgreSQL
- 03Real-time order status (submitted, confirmed, being prepared, ready) needed to push to the kitchen display and the customer's phone instantly without polling. Hasura's GraphQL subscriptions delivered that without a separate websocket implementation.Hasura
- 04Grubly serves restaurants across multiple cities with traffic that spikes sharply at lunch and dinner. CloudFront delivers QR code menus fast from cache; auto-scaling compute handles the order processing spike without over-provisioning for off-peak hours.AWS
Common questions about Grubly
The friction is lower than it appears. Customers at a table, ordering at a counter, or picking up food are already in the restaurant's context; scanning a QR code there takes the same effort as opening a delivery app. The key is making the QR code visible at the decision point: on each table, at the counter, and on the takeaway packaging. Most restaurants that switch see in-venue ordering move to Grubly quickly because the QR scan is faster than opening a separate app. Delivery orders take longer to shift because customers are ordering from home and habit is stronger there.
Yes. Each location has its own menu configuration, QR codes, and order stream within a single Grubly account. A chain operator can run distinct menus per location, see order data per location or consolidated across all locations, and manage each menu independently. Menu items can be shared across locations as a template and then overridden per location for price or availability differences.
Restaurants pay a flat SaaS subscription to Grubly plus standard payment processing fees (typically 1.5 to 2.5% depending on the payment method and gateway). There is no per-order commission. For a restaurant processing $30,000 in monthly orders that was previously paying 25% commission to a delivery platform, the switch removes $7,500 in monthly fees, leaving a SaaS subscription and processing fees well below that as the replacement cost.
Grubly supports card payments, UPI, and contactless phone wallet payments. Customers select their items, choose a payment method, and complete checkout without leaving the mobile site. The receipt and order confirmation appear immediately in the browser. The checkout flow was designed for speed: from the first item added to order submitted should take under 60 seconds for a typical order.
We built Grubly (QR code ordering, menu management with real-time availability, multiple payment gateway integrations, kitchen display system, real-time order tracking, and restaurant analytics dashboard) in 12 weeks. The focused MVP scope (no delivery routing, no driver management, no loyalty mechanics in the first version) is what made that timeline possible. A platform that also handles delivery logistics, multi-location franchise operations, or integrated loyalty programs would take longer. Contact us to scope based on your restaurant's specific requirements.
Related work
More work like this
Gula reaches 50 Indonesian restaurants in its first month by solving multi-platform order chaos
Indonesian B2B platform Gula lifts restaurants' and food outlet owners' revenue 3x with a fresh web and tablet app for effortless multi-platform food delivery management.
Read case study

AI phone agents automate global feedback loops through voice interviews
We transformed a text-based AI interview platform into a voice-first system that conducts automated phone interviews globally, eliminating user friction and delivering richer insights through natural conversations.
Read case study
Multi-location gas station operator processes 20k+ daily transactions after replacing spreadsheets with AI OCR software
This purpose-built gas station inventory management software uses AI-based OCR to automate invoice processing and unify inventory, sales, and vendor tracking. Designed for scale, it gives owners real-time control across 40+ locations without disrupting existing POS systems.
Read case study