Devli
Single-store pooja e-commerce app on Grocup
A React Native + Expo customer app for Devli, a pooja / ritual essentials store. It was migrated from a multi-store grocery+pharmacy MargERP marketplace into a single-seller Grocup experience: catalog, cart, OTP auth, orders, maps, voice search and deep links, with saffron/maroon Pooja branding for Android and iOS.

Context & role
Devli is the customer-facing mobile app for a single pooja store on Grocup (sellerId 6, www.devli.in / devli.grocup.com). Shoppers browse ritual essentials, add to cart, authenticate with phone OTP, set delivery location, and place orders for home delivery or store pickup.
The codebase started as a fork of a multi-store grocery + pharmacy marketplace (Paas Ki Dukaan / MargERP). The project was a full domain and API migration into a branded single-store Pooja app.
The problem
The source app assumed a marketplace: pincode → nearby stores, grocery vs pharmacy catalogs, prescriptions, dual carts, and MargERP-specific auth and banners. None of that matched Devli's model: one seller, one catalog, no Rx, Grocup headers (`origin` + `gc-customer-token`), and local cart state.
Shipping a store-ready app meant rewriting the API layer and stripping marketplace concepts without breaking checkout, deep links, or release builds.
Product & solution
- Migrated the entire network layer from MargERP to Grocup (`api.grocup.com`): store details, categories, products, banners, sections, search, OTP login, addresses, and orders, with `origin: https://devli.grocup.com` and `gc-customer-token` on every authenticated call
- Collapsed multi-store marketplace flows into a single-store entry: splash → home, store details cached on launch, pincode only where delivery needs it
- Removed grocery/pharmacy/prescription surfaces; unified cart, product detail, categories, and home sections around a Pooja catalog
- Rebranded the app as Devli (saffron/maroon theme, icons, scheme `devli://`, package `com.devli.grocup`) and simplified navigation to Home, Categories, Cart, Orders, Profile
- Shipped commerce extras: wishlist, location picker + Google Maps, Razorpay checkout wiring, invoice preview, banner/section home layouts, brands and offer grids
- Added voice search (expo-speech-recognition + Google Speech-to-Text), QR scanning, and deep links for `devli://`, `devli.grocup.com`, and `www.devli.in`
- Built a custom Android Expo module for SMS User Consent OTP autofill, plus EAS profiles for development, preview APK, and production AAB
Engineering decisions
API contract mismatch. MargERP paths were store-scoped and split by grocery/pharma; Grocup is origin-scoped and unified. Every service had to be remapped without leaving dead endpoints or dual-cart assumptions in checkout.
Domain deletion without regressions. Pharmacy screens, Rx tags, store-list discovery, and section-based theming were woven through navigation and context. Removing them meant careful navigator cleanup so deep links and product stacks still worked.
Native friction on a shared Expo codebase. Location, camera/QR, speech recognition, Maps keys, network security config for `api.grocup.com`, and Play Services SMS consent all needed platform-correct wiring while keeping TypeScript app code shared.
Outcome
Devli ships as a single-store Pooja commerce app on Expo 57 / React Native, backed by Grocup, with production EAS Android builds (v1.0.1) and a live storefront at www.devli.in.
Visual showcase
