Back to Blog

Your own channel instead of an aggregator: building a premium foodtech ecosystem for a holding of dozens of brands

Andrey Maksimenko,  | dev.family
Andrey Maksimenko
COO

Aug 19, 2026

14 min reading

Your own channel instead of an aggregator: building a premium foodtech ecosystem for a holding of dozens of brands - dev.family

A dev.family field report: a product that wins back margin and data from aggregators β€” and the engineering that lets it grow without being rewritten.

A market where the aggregator wins by default

Online food delivery in Saudi Arabia is no longer a niche. Grand View Research puts the market at nearly $8B for 2024, growing toward $13B by 2030 (roughly 9% CAGR). Big money, tight competition β€” and a market where the aggregator makes the rules.

The catch is that the aggregator is an expensive middleman. Commissions from major platforms in the region reach 30–35%, and restaurant guides put the typical Gulf range at 20–30% per order. For a restaurant that isn't just a line item β€” it's up to a third of the revenue on every delivered dish, taken by someone else. And the money isn't the only thing that leaves: the direct relationship with the customer and the data about them go to the platform, not the brand.

A market where the aggregator wins by default
Order economics: the aggregator takes 20–35% of margin plus customer data

We were approached by a large restaurant holding in the Gulf β€” around 40 independent brands operating in Saudi Arabia, Kuwait, and the UK, with plans to enter the US. A single brand can span dozens of restaurants in Riyadh alone. Their infrastructure was fragmented to the extreme: every brand had its own apps, its own systems, its own processes. The brief was ambitious β€” pull this scattered restaurant "universe" into one premium product that doesn't just compete with aggregators but redefines the food-ordering experience.

Why a first-party channel is a strategy, not "one more app"

In retail terms, the idea of your own delivery channel sounds simple: cut out the middleman. But three distinct business reasons sit behind it, and all three mattered to the client.

First, margin. Dropping aggregator commissions puts that 20–35% straight back into the business.

Second, owning the data and the customer. When orders flow through an aggregator, the platform owns purchase history, contacts, and behavior. A first-party channel flips that: the holding gets the direct relationship and its own customer base β€” the foundation for loyalty, retention, and personalization. The industry calls it ownership over aggregation: first-party orders deliver not only better economics but strategic control over the guest relationship.

Third, the experience. This is where it gets interesting. Simply "cloning the aggregator" isn't enough: if the holding's app feels like every other app, there's no reason for the user to switch. So the channel has to be not just first-party, but noticeably better β€” premium.

On top of all this sat a scale requirement. From day one the product was designed for an inflow of roughly 160,000–170,000 users (the holding's own base plus aggregator data at launch), for two languages (English and Arabic with RTL), and for multi-currency, multi-region operation.

Wondering what an owned delivery channel would cost and where it breaks even for your chain?

The core product question: premium feel through someone else's hands

Here's the paradox the whole project revolved around. Delivery is physically carried out by third parties β€” someone else's kitchens, someone else's POS, external couriers. Yet the sense of premium has to be created by us, in the app, in the one place where we control every pixel and every status.

During Discovery, we worked with the client to translate the vague words "premium" and "experience" into concrete product decisions. We ran our proven methodology: the product spec and UX prototypes were built in parallel, signed off, and fed straight into development tasks. The prototypes weren't sketches but high-fidelity β€” at the client's explicit request, so they could be shown to stakeholders as a finished product. We sized the scope with PERT and a confidence color code (green / amber / red) to reconcile budget and timeline honestly, rather than promise the impossible.

Out of that grew the product philosophy: not a menu list, but a visual, emotional choice of food. A repositioning from "yet another aggregator" to a premium brand with a character of its own.

Design as the product's main asset

There's solid evidence that visual presentation directly drives the ordering decision β€” with food, we "eat with our eyes" before we ever reach the cart. So design became one of the strongest parts of the project and, by the client's own account, one of its main assets.

We designed 150+ unique screens across 31 user flows, in a dark premium aesthetic with gold accents and large, appetizing food photography. But premium isn't only a beautiful storefront β€” it's the product being thought through end to end. Every scenario has its loading states, empty states, errors, and successes: payment declined, promo code applied or rejected, item unavailable, address outside the delivery zone. Good food UX lives in exactly these details, not just on the home screen.

The order lifecycle is designed as a proper state machine: PENDING β†’ CONFIRMED β†’ PREPARING β†’ READY β†’ courier assigned β†’ DELIVERING β†’ DELIVERED. Every status has its own screen, down to the live courier map and the order-and-driver rating. That continuity is what turns "someone else's" delivery into one coherent, controlled experience.

Design as the product's main asset
The order as a state machine: every status has its own screen

On top of the base ordering flow sits a premium and social layer: a loyalty program with points balance, tiers, perks, and streaks; gifting and referral codes; per-dish reviews, notes from the chef, a content feed, and chat. Multi-brand and food halls got their own scenarios β€” food-hall ordering, a multi-brand cart, plus delivery, pickup, and dine-in.

All of it rests on a mature design system: 120+ components with variants, color tokens, a separate library, and full attention to the Arabic interface. The design system lived in every sprint as its own workstream, and the Figma variables table was the single source of truth for tokens.

Not an app β€” an ecosystem

Architecturally this isn't one app but a connected platform. The contour includes the mobile app and admin back office, our Node.js server layer, a master-data hub, a custom POS, an aggregator hub to decouple from the kitchens, a last-mile delivery orchestrator, a payment gateway, communication channels, a loyalty platform, content storage, and an analytics contour β€” data warehouse, CRM, and dashboards.

Not an app β€” an ecosystem
Not an app but an ecosystem: our scope plugs into a landscape of external systems

Our area of responsibility was the app, the backend, and the admin panel β€” and it had to be designed to slot neatly into this landscape without creating chaos in the data. For a platform that integrates with a dozen external systems, that's a discipline in its own right.

Engineering for scale: multi-tenancy and POS-agnosticism

This isn't a franchise or delivery from a single restaurant, but potentially dozens of brands, each with its own kitchen, menu, hours, and geozones. We designed a multi-tenant architecture with a flexible "brand β†’ location β†’ branch" model and a configurable level of control on each entity. New brands and venues are added by configuration, without rewriting the app β€” precisely the tenant isolation and scaling problem that SaaS solves up front rather than after the fact.

Engineering for scale: multi-tenancy and POS-agnosticism
Multi-tenant model: brand β†’ location β†’ branch

The key engineering decision was to move the POS integration into a separate layer. We didn't bake a specific point-of-sale system into the product code; we defined a single internal interface that anything can sit behind β€” the client's custom POS, an aggregator, or a test environment. As our engineer put it:

From the interface-spec side nothing changes β€” whether we're talking to Deliverect or to something else.
dev.family engineer
Engineering for scale: multi-tenancy and POS-agnosticism
POS-agnostic layer: a single internal interface that anything can sit behind

This is essentially a classic anti-corruption layer β€” a pattern that isolates your data model from a foreign one and keeps an external system's quirks from leaking into the product core. The POS can be swapped without rewriting the app. For a project spanning dozens of brands with growth plans, that isn't architectural decoration β€” it's a survival condition.

Planning a product that must survive a POS swap, new-country launches and 10Γ— growth?

Grown-up infrastructure on Google Cloud

At the client's explicit request β€” they wanted to keep the infrastructure in-house β€” we built the entire project on Google Cloud Platform. And instead of the usual "containers on top of the cloud" route, we leaned on managed services as far as they'd go: managed PostgreSQL for data, managed Redis for queues (including the notifications queue), Google Cloud Storage for files and images, load balancers β€” all natively wired inside the platform, with separate staging and production environments.

Grown-up infrastructure on Google Cloud
Infrastructure on Google Cloud: managed services, separate environments, deploy from GitLab

Deployment was set up from our GitLab straight into GCP, so the client could manage resources from the console. Localization and static onboarding content were moved into remote config (Firebase) so they could be changed without a release. Managed services instead of self-hosted clusters mean less operational load on the team and predictable scaling for the expected traffic. The mobile stack is React Native β€” a proven choice for foodtech products that keeps iOS and Android on one codebase.

The integrations that hold the experience together

  • The client's custom POS β€” the source of menus, prices, modifiers, images, and stop lists. Through a centralized admin panel, an administrator connects venues and syncs data with one button.
  • Deliverect β€” the aggregator hub through which we decoupled the app from the kitchens' operations.
  • Nash β€” a last-mile delivery orchestrator: a SaaS where you can plug in your own drivers, courier services, and the logic for assigning orders. Multi-region, like the product itself; live courier tracking is built into the ordering experience.
  • Tap Payments β€” an Arabic payment system: online payment and refunds.
  • Gameball β€” the loyalty and gamification engine: points, tiers, challenges, cashback, referrals.
  • social.plus β€” the social features: reviews, dish ratings, stories, feed.
  • Firebase (remote config, push) and Google Maps / Places β€” maps, geocoding, geozones.

Challenges and non-obvious solutions

Smart address and restaurant switching. When dozens of restaurants under one brand meet the reality of different availability and prices, a plain list stops working. We built something we hadn't built before: when the user changes address or restaurant, the cart is preserved, and the venue list immediately shows which items would disappear where β€” without opening each restaurant. The list is filtered by availability and sorted by relevance (availability first, then delivery speed). For pickup, the user freely switches restaurants with the cart intact; for delivery, we route to the nearest kitchen to avoid extra load. The client singled this scenario out.

Challenges and non-obvious solutions
Smart address and restaurant switching: the cart is preserved, availability is highlighted

Multi-brand order routing. A separate problem β€” how to hand an order off to the POS correctly when a single cart spans several brands in one kitchen.

Gaps in the POS API. The kitchen system was missing the endpoints and webhooks we needed β€” for example, updates when an item goes to a stop list, or notifications that an order is ready. We built the integration against a raw API and designed workarounds so the user never felt it.

Economics at scale. The social platform bills every guest as a paid user β€” at a base of 160,000–170,000 that threatened an enormous invoice. We deliberately designed the architecture to separate guest traffic from billable traffic and protect the product's unit economics. At scale, "small details" like this decide whether the business model closes at all.

Arabic and RTL. Full Arabic support with interface mirroring was baked in from day one. This isn't "translating strings" but bidirectional layout: mirroring the layout, the direction of icons and navigation, mixed content. Building it in from the start is an order of magnitude cheaper than retrofitting it later.

What to take away from this

If your business is a chain or holding living on aggregators, here's a short checklist from our experience:

  • Count the sum of commission and data, not just the fee. A first-party channel returns 20–35% of margin and, more importantly, the customer relationship.
  • Premium is states, not pictures. Errors, empty screens, order statuses, and courier tracking turn "someone else's" delivery into a coherent experience more powerfully than a pretty storefront.
  • Isolate the POS from day one. A single internal interface (an anti-corruption layer) means swapping the point-of-sale system doesn't turn into rewriting the product.
  • Multi-tenancy and localization are foundations, not features. The "brand β†’ location β†’ branch" model, multi-currency, and RTL belong in the architecture up front β€” otherwise every new brand or region costs like a separate project.
  • Stress-test the unit economics of every integration at your scale. A service that costs pennies in a pilot can break the whole model at a base of hundreds of thousands of guests.

Bottom line

A product like this isn't "one more delivery app" but a premium foodtech ecosystem, designed to grow alongside the holding: adding brands, regions, and scenarios without rewriting the product. The path from Discovery and a design the client fell in love with to an engineering-mature platform ready to scale is exactly the kind of case where product, design, and engineering thinking have to click into place together.

Building your own delivery channel or a premium product for a chain?

dev.family brings deep foodtech expertise and a portfolio of restaurant apps.

FAQ

You may also like: