Retail and eCommerce Case study

Froono: customer loyalty platform

A multi-tenant customer loyalty platform: web admin, customer API, a mobile app and a PWA, with receipt checking, lucky draws, WhatsApp campaigns, AI image generation and online payments.

Froono: customer loyalty platform: website
Froono customer app welcome screen
Client
Froono
Service
Web apps, Mobile apps, Integrations, AI
Years
2023–2026 (3 years)
Stack
AWS S3 and CloudFront, React Native (Expo), React (Vite PWA), TypeScript and 6 more
Platforms
iOS, Android, Web

Overview

Froono is a customer loyalty platform for retail chains. Companies, their stores and their customers each have their own scope. Staff run loyalty cards, reward rules, lucky draws and marketing from a web admin. Customers use an Expo mobile app and a web PWA that talk to one REST API. It has been in continuous development since 2023.

The challenge

Give each company and store control over its own cards, rules, draws and campaigns without any of it leaking across tenants, and check customer purchases without a till integration: customers upload a bill, the system reads it, and an admin accepts or rejects it. On top of that sit scheduled draws, scheduled marketing and messaging, and paid subscriptions. All of it has to run reliably in the background.

What we built

  1. Multi-tenant web admin (Company, Store, Customer) with superuser, company admin and store admin roles, and a reusable company/store scope picker used across forms
  2. Loyalty setup: card issuance programs with several card-number formats, card families (points, discount or visit-based), tiers with spending thresholds, reward plans and date-bound reward rules
  3. Purchase flow: customers upload a bill, OCR reads it, a scoring step checks store, product group, invoice number, amount, date and duplicates, and an admin accepts or rejects the purchase
  4. On acceptance: reward balance and ledger updates, visit-progress tracking, tier upgrades and a spin wheel unlocked by visits
  5. Lucky draws: schemes, participants (manual or automatic from accepted purchases), scheduled draw execution, winners, and winner banners generated and published on a schedule
  6. Marketing material designer with PDF and image export, scheduled posting to Facebook and Instagram pages, and a shared media library
  7. WhatsApp Cloud API campaigns, templates, conversations and webhook handling, with one unified schedule model and a calendar planner for marketing, messages and draws
  8. AI image generation jobs billed against wallets with a ledger, and a social-post flow that builds posts from public calendar events
  9. Subscriptions and online payments for company sign-up, discount coupons, and loyalty reports
  10. A customer REST API under /api/v1/ with token refresh, plus push notifications to browsers and to iOS and Android devices
  11. An Expo/React Native mobile app and a Vite/React PWA built in one pnpm and Turbo monorepo, sharing a typed API client and Zod validation schemas
  12. Celery workers and scheduled tasks for draws, posting, messaging and recovery of lost schedules; the PWA is delivered to AWS from a CI pipeline

How a system like this fits together

Reference architecture: multi-tenant loyalty and lucky-draw platform

Simplified reference architecture, not a client schematic.

Reference architecture: multi-tenant loyalty and lucky-draw platformZones from left to right: clients (CloudFront-hosted web app and mobile app), the Django application, data (PostgreSQL and S3), background jobs (Redis and Celery) and third-party services. Full description in the numbered list below the diagram.ClientsApplicationBackground jobs (async)DataThird-party servicesstatic buildREST/api/v1/read / writesynchronous callsenqueuedispatchresults,mediacampaigns, posts, AI imagesCloudFrontStatic PWA deliveryfrom S3Web app (PWA)Vite + React,installableMobile appExpo / React NativeDjangoREST API (/api/v1/)+ staff admin UIRedisTask brokerCelery workersDraws and scheduledposts, campaigns,AI image jobsPostgreSQLTenants, customerspoints and drawsAmazon S3Bills, marketingassets, AI imagesRazorpaySubscription paymentsAmazon TextractBill text extraction (OCR)Push servicesExpo push (mobile),Web Push (PWA)WhatsApp Cloud APIScheduled campaign messagesFacebook / InstagramScheduled posts and storiesGeminiAI image generationReference architecture: multi-tenant loyalty and lucky-draw platformZones from left to right: clients (CloudFront-hosted web app and mobile app), the Django application, data (PostgreSQL and S3), background jobs (Redis and Celery) and third-party services. Full description in the numbered list below the diagram.ClientsApplicationDataBackground jobs (async)Third-party servicesCalled by the applicationCalled by background jobsstatic buildREST /api/v1/read / writeenqueuedispatchresults, mediasynchronous callscampaigns, posts, imagesCloudFrontStatic PWA delivery from S3Web app (PWA)Vite + React, installableMobile appExpo / React NativeDjangoREST API + staff adminPostgreSQLTenants, customers, pointsAmazon S3Bills, assets, AI imagesRedisTask brokerCelery workersDraws, posts, campaigns, AIRazorpayAmazon TextractPush servicesWhatsApp Cloud APIFacebook / InstagramGemini
Customers and store staff use one API; slow or scheduled work runs in the background so requests are not blocked by it.
  1. A customer opens the installable web app or the mobile app and uploads a bill.
  2. Both apps call one REST API (/api/v1/), served by the Django application, which also hosts the staff admin.
  3. Django reads the bill with Amazon Textract (OCR) and extracts the bill details. Subscription payments (Razorpay) and push notifications (Expo and Web Push) are also called by the application directly.
  4. Draws, scheduled posts, campaigns and AI image jobs are queued through Redis for the Celery workers and the scheduler.
  5. The workers send WhatsApp Cloud API campaign messages, publish scheduled posts and stories to Facebook and Instagram, and run Gemini image jobs; results are written back to PostgreSQL and S3.

What happened next

  • Delivered

    The work described above was delivered to the client.

  • Operational facts
    • Our work on this project spanned 2023–2026.
    • It was maintained and extended over 3 years.

Could this be your project?

Request similar work

Questions about this project

How long did this project take?

Our work on it ran from 2023 to 2026.

What technology was used?

AWS S3 and CloudFront, React Native (Expo), React (Vite PWA), TypeScript, Django, PostgreSQL, Redis, Celery, WhatsApp Cloud API, Razorpay.

Was it maintained and extended over time?

Yes. Our work on this project was maintained and extended over 3 years, from 2023 to 2026.

Similar work

AutoAccount sign-in screen

Also React and Python, also a web app

AutoAccount: financial management and accounting platform

  • Fintech and payments
  • Business software and compliance
  • Web apps
  • Integrations

2025–2026

A React and FastAPI accounting platform for multi-location repair shops: bank and Tekmetric data, AP/AR, bill scheduling, payroll and ledger entries, dashboards and reports.

QCare: quality, compliance and risk evaluation. Modules: OE certification and compliance, programme tracking and workflow, training and people management, quality field tool, facility and asset management, holistic network management. DEKRA.

Also AWS, also a web app

QCare: compliance platform for DEKRA

  • Business software and compliance
  • Operations and facility management
  • Web apps
  • Integrations

2024–2026

QCare, DEKRA's quality, compliance and risk evaluation platform on the Collabtic service platform: certification and compliance tracking, organisations, training, shop certification and headquarters dashboards, on an Angular front end and a PHP API.

Hemag Nova AG: multi-store Magento 2 platform screenshot

Also AWS, same industry

Hemag Nova AG: multi-store Magento 2 platform

  • Retail and eCommerce
  • eCommerce
  • Web apps
  • Website and SEO

2018–2021

A Magento 2 platform for several storefronts: custom shipping and product import modules, a partial Magento 1 migration, Algolia search and responsive theming.

Building something similar?

Tell us what you need and your industry. We will tell you what is realistic, what it would take, and show you the closest work we have done.

Are you ready to partner with us?

Our good-natured team is waiting to hear your business requirements.

Book a free project call