Dilodoor Watch E-commerce
Mobile-first Cash on Delivery watch store for Bangladesh — curated catalog, guest checkout, customer accounts, and a role-based admin on Next.js 15 and Supabase.









Case study
Project Overview
Dilodoor is a full-stack, production-grade e-commerce platform I designed and built end-to-end for the Bangladeshi watch market — from database schema and API architecture to pixel-perfect, mobile-first UI. The project tackles a uniquely local commerce challenge: Bangladeshi shoppers overwhelmingly prefer paying only when the product is in hand, so the entire purchase flow — cart, checkout, shipping logic, and order lifecycle — is engineered around Cash on Delivery across all 64 districts, with granular district-to-thana delivery rules and Dhaka vs. outside-Dhaka shipping tiers baked directly into the data model.
On the frontend, I used Next.js 15 (App Router) with React 19 and Tailwind CSS 4 to ship a fast, mobile-first storefront: a curated product catalog with filterable browsing, category pages, an image carousel-driven product detail experience, a persistent client-side cart, wishlist syncing between guest sessions and logged-in accounts, and a checkout flow with inline validation and a sticky order summary — all wrapped in a crimson-and-black brand system designed to feel premium on a small screen.
Behind the scenes, I built the entire backend on Supabase Postgres with Row Level Security, writing raw SQL migrations to evolve the schema safely across ten iterations — from the base commerce schema through banners, verified reviews, category imagery, admin roles, and traffic-source attribution. Order creation is fully transactional: a Postgres RPC function locks stock rows, decrements inventory, and generates human-readable order numbers (DD-YYYY-####) atomically, so concurrent checkouts never oversell.
I also designed and shipped a complete internal operations tool: a JWT-authenticated admin dashboard with role-based access control across three tiers (admin, sub-admin, order manager), so a real business could hand out scoped logins to staff without exposing sensitive settings. Admins can manage the full product catalog with a tabbed editor (specs, features, SEO, reviews), reorder gallery images via drag-and-drop, moderate reviews, run a lightweight leads CRM for abandoned checkouts, configure shipping rates and homepage banners, and invite teammates through a secure token-based flow. Uploaded images are automatically compressed with Sharp into sub-50KB WebP files and served from Vercel Blob, keeping the whole stack comfortably inside free-tier hosting limits while still loading fast.
To make the store genuinely marketable, I integrated Facebook Pixel and Google Tag Manager with hashed PII for improved ad match quality, plus a full GA4-style ecommerce dataLayer so every view, add-to-cart, and purchase event is trackable for real ad campaigns — not just a demo storefront.
This project demonstrates my ability to own a product from requirements through architecture, database design, secure multi-role auth, transactional data integrity, third-party marketing integrations, and a polished, conversion-focused UI — all shipped as a lean, cost-efficient, real-world-ready application rather than a tutorial-scale demo.
Highlights
Key Features
- Bangladesh-first COD commerce — BDT pricing, 64 districts, Dhaka vs outside shipping rates
- Full storefront path: browse → filter → cart → COD checkout → order confirmation
- Guest checkout plus customer accounts (profile, orders, addresses, wishlist)
- Dual auth: Supabase Auth for shoppers; JWT admin with RBAC (admin / sub_admin / order_manager)
- Admin suite: products, categories, orders, reviews, leads CRM, users, settings, team invites
- Transactional orders with stock locking and order numbers (DD-YYYY-####)
- Marketing-ready: Facebook Pixel, GTM/dataLayer ecommerce events, hashed PII match quality
- Image pipeline: Sharp WebP compression under 50KB → Vercel Blob CDN
- Mobile-first UI with crimson brand system and trust-forward COD messaging
Process
Build Phases
Phase 1 — Pre-launch polish (current) Finish go-live QA from polish checklist: checkout UX, empty states, Pixel Purchase verification, Lighthouse mobile score, seed catalog, domain + env on Vercel.
Phase 2 — Ops & retention Password-reset UI, SMS/email order status alerts, stronger lead-to-order tooling for ad campaigns, Supabase free-tier keep-alive.
Phase 3 — Growth features bKash/Nagad payment gateways, coupons/discounts, product variants, related products, social login, inventory low-stock alerts.
Phase 4 — Scale Move past free-tier limits (Cloudinary or equivalent for images, paid hosting/DB) as catalog and traffic grow.
Visuals
Screenshots
Product views across screens and flows.




