Placeholder case study: edit it in content.js
Dukandar: local multi-vendor marketplace
A marketplace that lets neighbourhood shops in Lahore sell online with cash on delivery and local mobile-wallet payments.
- Django
- PostgreSQL
- Svelte
- Vite
- Tailwind CSS
- Client
- Startup founders, Lahore (sample)
- My role
- Lead full-stack developer
- Timeline
- 5 months
120+ shops
Onboarded in the first quarter
< 1.5 s
Catalogue load on mobile data
38%
Orders paid through wallets
The problem
Small shop owners wanted to sell online but could not manage stock, orders and payouts across several apps. Most customers pay cash on delivery or by mobile wallet, and many browse on slow connections, so generic marketplace templates failed on both counts.
My approach
I built a vendor dashboard and a shopper storefront on one Django API. Orders are split per vendor, payouts are calculated automatically, and the storefront is a lightweight Svelte app that ships very little JavaScript so it stays fast on weak networks.
The hardest part
Never sell the same item twice
Two shoppers could buy the last item at the same moment. I reserve stock inside a PostgreSQL transaction with row locking, and release it automatically if a payment is not completed, so stock counts stay correct even during busy evenings.
How the technology solved it
Django
REST API, payment-gateway adapters, commission engine and background jobs for payout statements.
PostgreSQL
Transactional stock reservation with row locks, plus partial indexes that keep catalogue queries fast.
Svelte
A small, fast storefront with instant search and a cart that survives a dropped connection.
Vite
Code-splitting and optimised builds so the first page stays light on mobile data.
Tailwind CSS
Responsive, right-to-left-ready layouts for Urdu and English.
What I built
- Vendor dashboard for products, stock, orders and payouts
- Cash on delivery and wallet payments through a swappable payment layer
- Split orders with automatic commission and payout reports
- Urdu and English storefront with delivery-area rules
The result
Shops went live in a day instead of weeks. The founders now run payouts from one screen, and the storefront stays quick on ordinary mobile connections.