Retail and services loyalty · UAE · Ongoing since May 2024

LoyalsClub: a multi-business loyalty platform built and launched from Dubai

We built LoyalsClub end to end: a .NET API on AWS in the UAE, Flutter apps for staff and customers, and a Nuxt owner portal, then took it live.

LoyalsClub

Outcomes

MetricResultHow
Value of a returning customer2.4x lifetime spendOwner-portal transaction ledger for a Dubai barbershop, 2 May to 13 Aug 2026: 21 of 70 enrolled customers returned at least once and averaged AED 773 lifetime spend versus AED 320 for one-time customers.
Revenue concentration in repeat customers51% of tracked revenueSame ledger and period: the returning 30% of enrolled customers produced 51% of the AED 31,936 in tracked revenue, which was staff-entered rather than POS-verified.
Enrollment and scanned visits70 customers enrolled, 107 scanned visitsOwner-portal enrollment and scan counts, 2 May to 13 Aug 2026.
In-app customer rating4.9 average from 23 reviewers, 29 reviewsIn-app review widget, 2 May to 13 Aug 2026. This is an in-app rating, not a Google review.

Stack

  • C# / .NET 10 on ASP.NET Core
  • PostgreSQL and EF Core
  • Terraform and Terragrunt on AWS (UAE region)
  • Flutter (iOS and Android, customer and staff apps)
  • Nuxt 4 owner portal and public site
  • Stripe subscriptions and webhooks
  • Cloudflare DNS and edge

Services

The situation

Service businesses in the UAE, salons, barbershops, clinics, run on repeat customers, but most of them have no real way to know who is repeating. The booking calendar and the POS system both forget a client the second they walk out. We decided to build our own answer to that, sized for the business that owns one to ten branches and does not have a CTO, a data team, or the patience for a six-month rollout.

That meant an unusually wide brief for a single product: a backend that could run subscriptions and reward rules safely, a phone app people would actually keep on their home screen, a staff scanner simple enough to use one-handed at a busy counter, and an owner dashboard that answers the only question that matters, "did this cost me money or make me money."

What we built

The backend is a .NET 10 API on PostgreSQL, deployed with Terraform and Terragrunt onto AWS in the UAE region, because a UAE business asking where its data lives deserves a straight answer. Stripe handles subscriptions and billing. Firebase and AWS SES push notifications and email. On top of that sit two Flutter apps, one for customers, one for staff running the scanner at the counter, and a Nuxt owner portal with the reporting a business owner opens on a Tuesday morning to see how the week went.

No agency layer, no handoff between "the strategy people" and "the build people." The same team that designed the reward rules wrote the migration that enforces them.

How it went

Our first real customer, a Dubai barbershop, went live on 2 May 2026. Over the following period, to 13 August 2026, the numbers told a story we did not have to dress up: 70 customers enrolled, 107 scanned visits, and AED 31,936 in tracked spend. The part worth screenshotting is this: the 30% of customers who came back at least once were worth 2.4 times as much over their lifetime as the ones who visited once, and that minority produced 51% of all tracked revenue. That is the entire argument for loyalty software in one sentence, proven on one shop's own ledger, not a vendor's slide deck.

That barbershop has since stopped actively using the platform, though the subscription is retained. We are early. Single-digit paying customers is the honest number, and we would rather say that than imply a queue of clients we do not have.

What we would do differently

We would have started collecting owner-side feedback loops earlier. That barbershop made an unprompted promo video for us, which told us the product landed emotionally before we had the instrumentation to know why. Building your own product means you cannot blame the client's scope for a slow rollout. It is a useful kind of honesty to sit with.

Tell us what you are trying to build

Chat on WhatsApp

We reply on WhatsApp within one business hour (Sunday to Friday, 09:00 to 18:00 Gulf time) and within 24 hours otherwise.

Call +971 55 950 2669

Speak with us directly during business hours.

Send a written brief

Prefer email. Tell us the brief and we reply with next steps.