Skip to content

A supermarket that feels like the neighbourhood shop.

A premium super shop for Dhaka, designed and built on Next.js and PostgreSQL: an area-aware storefront, a two-click mega menu, fast filters, pack-size pricing, a cart with no surprises and a rewards account.

Tools & Platforms
Figma, Next.js, Postgres, React, TypeScript
Live URL
View Live Project

01 / The brief

A supermarket that feels like the neighbourhood shop.

Grosiva is a premium super shop for Dhaka. The brief was a grocery experience with fresh produce up front, honest prices, delivery slots people can plan around, and payment the way Dhaka actually pays: bKash, Nagad, cards or cash on delivery.

We covered strategy, UX/UI design and the full build: a Next.js storefront on a PostgreSQL database, from the first sketch to the working shop. It runs to seven page templates, ten shopping aisles, four payment methods and one rewards programme.

Grosiva case study overview: scope, deliverable and key numbers
The scope at a glance.

02 / The storefront

A storefront that knows your area.

The header opens on where the order is going: a delivery-area picker for Dhanmondi, Dhaka, a wide search for groceries, fruit, meat and household essentials, and the cart total always in view. A weekly banner leads with the season’s produce, and the strip underneath answers the questions shoppers ask first: delivery slots you choose, freshness guaranteed, and the payment methods accepted.

A gold-member rewards card sits beside the banner, so the reason to come back is part of the first screen rather than an afterthought.

Grosiva storefront header, hero banner and rewards card
Header, weekly banner and rewards card.

03 / Design system

Warm, premium, easy to scan.

A deep wine and berry palette gives the shop a premium feel, butter and cream keep it warm, and a single sale red is reserved for discounts and low stock so it always means something. Outfit carries the interface and headings; Hind Siliguri sets Bangla alongside it.

Every product card follows the same order: brand, name, pack size, rating, the price with the old price struck through, and one clear Add to Cart. The same card works for a 5 kg bag of rice and a single fish.

Grosiva design system: Wine, Berry, Butter, Cream, Ink and Sale red, with Outfit and Hind Siliguri type
The palette, the type and the product card.

04 / Navigation

A single All Categories menu opens ten aisles and more than forty sub-categories, with the weekly promotion inside the menu itself. Each aisle has an icon, so people scan by shape before they read.

Grosiva mega menu with ten aisles and a Fruits and Vegetables panel
The mega menu, open on Fruits and Vegetables.

05 / Shop and filters

Filter fast, find faster.

The shop page filters by category, brand and price. Every card shows its rating and discount, and shoppers can switch between a grid and a list depending on whether they are browsing or hunting for one item.

Grosiva shop page with category, brand and price filters
Filters and product cards on a category page.

06 / Product page

Pick a size, see the price.

Groceries come in sizes, so the price follows the size: the rice shown here moves from 1 kg to 10 kg without leaving the page, and the Add to Cart button carries the running total. Delivery, returns and payment are stated upfront, before anyone has to ask.

Grosiva product page with pack sizes and add to cart
Pack sizes, price and add to cart.

07 / Cart

Clear totals, no surprises.

A progress bar shows how close the basket is to free delivery, and tells the shopper when they have unlocked it. Coupons and savings are shown in the order summary, items can be saved for later, and the total lists subtotal, discount, delivery and VAT line by line, with checkout options stated beside the button.

Grosiva cart with a free-delivery bar, coupon and order summary
The cart and order summary.

08 / Account and rewards

Reasons to come back.

The account area opens on what matters this week: reward points with their taka value (2,450 points is ৳245 to redeem), the coupons available and the one about to expire, and a live banner for the order on its way, with its delivery window and progress.

The sidebar keeps the rest one click away: orders, tracking, wishlist, saved addresses, payment methods, rewards and coupons. Past orders can be reordered in one tap, and the gold-member card gives the rewards programme a face.

Grosiva account dashboard with reward points, coupons, live order tracking and a gold-member card
The account dashboard and the rewards card.

09 / The home page

One scroll, the whole week’s shop.

The home page puts the week in order: a seasonal banner first, then the shop-by-category row, flash deals, popular products and fresh picks, with the rewards card and the reasons to shop (fresh guaranteed, secure payment, easy returns) before a weekly-offers sign-up and the footer.

Every block uses the same header, palette and product card as the inner pages, with an English and Bangla switch and prices in taka throughout.

The Grosiva home page from top to bottom: weekly banner, categories, flash deals, fresh picks, rewards and footer
The home page, top to bottom.

10 / The build

Designed and built as one product.

The same team designed the shop and built it, so nothing was lost between a mock-up and a working page. The storefront is a Next.js application: every page in the design, from the home page and aisles to the product page, cart, checkout and account, is a real route sharing one set of components.

That is what keeps the shop consistent. The header, the product card, the price and the Add to Cart button are each built once and reused, so a change to the card in the design system reaches every aisle at once.

Front end

Next.js

Routes for every template, shared components, and pages that can be rendered ahead of time so aisles and products are quick to open and easy for search engines to read.

Data

PostgreSQL

One relational database for the catalogue, pack sizes and prices, customers, orders, coupons and reward points.

Design system

Shared tokens

The palette, type and card patterns are defined once and used by every page, in English and Bangla.

11 / Catalogue and pricing

Built around how groceries are sold.

A grocery catalogue is not a list of single prices. One product comes in several pack sizes, each with its own price, an optional old price for a discount, a rating and a stock level. PostgreSQL holds that structure directly, so the product page can show every size and the filters can count products by category and brand without guesswork.

Discounts are stored as a price and an old price, and the percentage badge on each card is worked out from them, so a sale is a data change rather than a design change.

12 / Orders, accounts and rewards

From basket to doorstep.

The cart, checkout and account all read from the same order data. The cart totals subtotal, discount, delivery and VAT; checkout collects the delivery details and the payment method (cash on delivery, bKash, Nagad or card); and the account dashboard then shows the order as it moves from confirmed to delivered, with the rewards balance and coupons beside it.

Reward points and coupons live in the database next to the orders that earned them, which is what lets the dashboard show a points balance in taka, the coupons available and the one expiring soon.

Start a project

Building an online store people enjoy using?

Catalogue, cart and checkout, designed and built for how your customers shop. Tell us what you are building and we will send back a scope sketch.