Loyla
Digital receipts that turned into a loyalty platform for independent shops
Two mobile apps, a web platform and one backend. A shopper taps or scans to collect a receipt, and rewards, ordering and till tools build on that moment.

The challenge
Paper receipts get lost, and the usual digital alternative asks the shopper for an email address at the till. Independent shops have a second problem: they cannot afford the loyalty schemes and customer data that chains take for granted.
The product began as ReceiptBranch, a way to hand over a receipt digitally with no personal details exchanged. It has since been rebranded as Loyla and grown into a wider platform for independent shops in the UK.
The requirement
- A receipt has to reach the shopper’s phone in the time it takes to pay.
- It has to work when the shopper does not have the app.
- Loyalty should run by itself once a shop has set its rules.
- Shops need tools they can use on a phone at the counter and on the web in the back office.
- The platform team needs to verify shops, manage subscriptions and see what is happening.
The solution
The receipt handoff. The shopkeeper creates a receipt and the app shows a QR code. The shopper scans it and the receipt is theirs. Shops can also place an NFC tag on the counter: a tap hands over the latest unclaimed receipt from that member of staff. If the shopper has no app, the same link opens the receipt in a browser.
Loyalty. Each shop switches on points, stamps or both, and sets its own earn rate and rewards: money off, a capped percentage or a free item. Points and stamps are awarded automatically when a receipt is claimed, and a full stamp card issues its coupon without anyone at the till doing anything. Loyalty is shared across a brand’s branches.
More for shops. Around the receipt we built a catalogue and inventory, online ordering, table ordering by QR code, a kitchen display that updates live, receipt printing, team management, analytics, and short video adverts that appear in a feed for nearby shoppers.
Till integrations. The backend accepts orders from external point-of-sale systems, with handlers for Square, Shopify, Epos Now, Lightspeed and SumUp, so a sale rung up on an existing till can produce a Loyla receipt.
Web. One Next.js application serves the public site, the shopper’s web experience, the merchant back office and the platform team’s console.
Architecture
The backend is a NestJS application organised into about forty domain modules, on PostgreSQL with PostGIS, with schema changes tracked through versioned migrations and a large automated test suite.
Payments run on Stripe: card payments, subscriptions for shops, and Connect accounts so that shops are paid out directly. Sign-in is handled by Firebase Authentication, with tokens verified on the server. Kitchen displays and shop events are pushed over WebSockets. Media is held in S3-compatible object storage.
Links are a product feature here, so they are treated as infrastructure. Universal links are served from a small, separately deployed static host. A receipt link opens the app if it is installed and the web receipt if it is not, and that behaviour does not depend on an API release.
The system runs on Kubernetes. GitHub Actions builds container images and deploys them: staging on every push, production on a version tag, with more than one replica behind an ingress with managed certificates.
Technology
Flutter with Riverpod for both apps; NestJS, TypeORM and PostgreSQL with PostGIS; Next.js and React for the web platform; Stripe including Connect; Firebase Authentication and Cloud Messaging; Socket.IO; Docker, Kubernetes and GitHub Actions.
Outcome
Loyla is live in the UK, with the shopper app and the business app on the App Store and Google Play. What started as a receipts app is now a platform that covers receipts, loyalty, ordering and till operations for independent shops, built and run by the same engineering team throughout.

