Devli
Single-store pooja e-commerce app on Grocup

- Role
- Frontend & Mobile Engineer
- Platforms
- iOS · Android
- Year
- 2026 – Present
- Status
- Production
Stack
- React Native
- Expo
- TypeScript
- React Navigation
- Axios
- AsyncStorage
- Grocup REST API
- Razorpay
- Google Maps
- Google Cloud Speech-to-Text
- expo-speech-recognition
- expo-location
- Native OTP SMS Consent
- EAS Build
Context
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.
What I built
- 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 challenges
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.