E-Commerce App
A cross-platform React Native shopping app for a hardware and home-improvement retailer, covering paint, ceiling fans and light fixtures. It handles a visually-driven catalogue, daily deals, cart and wishlist, secure payments through Stripe, and order tracking on both iOS and Android from one codebase.
iOS + Android
Platforms shipped
Both stores served from one shared codebase.
Up to 50%
Promotional depth
Seasonal sale mechanics supported natively by the deals module.
PCI-compliant
Checkout
Card data handled entirely by Stripe, never by the retailer's own systems.
Project overview
Hardware retail is a difficult e-commerce category. Customers do not shop by SKU — they shop by look. Someone buying paint is matching a shade; someone buying a ceiling fan is matching a room. That makes the product imagery, not the product name, the primary interface, and it puts unusual pressure on image loading over Indian mobile networks. The retailer wanted a direct sales channel that did justice to a visually-driven catalogue while still handling the unglamorous parts properly: stock, payments, order status and returns.
The problem
The retailer had no direct digital sales channel. Their catalogue is large and image-heavy, which made naive mobile implementations slow. They also needed to reach both iOS and Android customers without funding and maintaining two separate native applications.
How we built it
Our approach on this project
- 1
Catalogue modelling around visual attributes
Products were modelled with the attributes customers actually filter on — shade family, finish, room type, sweep size — instead of a flat SKU list, so browsing feels closer to a showroom than a spreadsheet.
- 2
Image pipeline for slow networks
Every product image is served in multiple resolutions with lazy loading and progressive placeholders. This was the single largest factor in perceived speed for an image-first catalogue.
- 3
Predictable state management
Cart, wishlist and session state run through Redux so that behaviour stays consistent across screens and survives app backgrounding — the point where naive cart implementations commonly lose data.
- 4
Payments and order lifecycle
Stripe handles payment capture so card data never touches the client's infrastructure, and every order carries a status timeline the customer can check without contacting support.
- 5
Single codebase, two platforms
React Native was chosen deliberately so the retailer maintains one codebase, ships features to both platforms simultaneously, and pays for one team rather than two.
Engineering detail
Challenges we hit, and how we solved them
!Challenges
- Managing product catalog efficiently
- Implementing smooth checkout process
- Handling product images optimization
- Cross-platform compatibility
✓Solutions
- Used Redux for state management
- Integrated Stripe for secure payments
- Implemented image lazy loading
- Built with React Native for iOS and Android
Technologies
Tech stack used
Features
Key features implemented
Spring sale promotions up to 50% off
Paint colors catalog with pricing
Decorative ceiling fan collection
Deals of the day section
Shopping cart and wishlist
Product search and filtering
User authentication
Order tracking system
What the client received
Published iOS and Android applications from a single React Native codebase
Product catalogue with search, category browsing and attribute filtering
Deals-of-the-day and promotional campaign modules
Cart, wishlist and saved-address management
Stripe payment integration with order confirmation flow
Order tracking and status timeline
User authentication and profile management
Results
Successfully launched on both platforms
High user engagement with deals section
Smooth checkout experience
Positive user reviews
Services used
The capabilities behind this project
Need something similar? These are the services this build drew on.
Questions about this project
Why React Native instead of native iOS and Android apps?
For a catalogue-and-checkout app, React Native gives near-native performance while letting one team ship to both stores at once. Native becomes the better choice when an app leans heavily on platform-specific hardware — sustained background location, complex camera pipelines, AR. This app did not.
How is payment data secured?
Card details are captured by Stripe's SDK and never pass through or get stored on the retailer's servers, which keeps PCI scope minimal. The app only ever handles payment tokens and order records.
Can the app integrate with an existing billing or inventory system?
Yes — that is a common follow-on. Stock levels, pricing and order data can sync with an existing ERP or billing system through an API layer, which is work we handle under custom software development.
More work