Overview
Sidratul Noor (sidratulnoor.com) sells handmade mahogany Quran stands (rehal) and Islamic gifts across Bangladesh. Most customers arrive from a Facebook ad on their phone, order with cash on delivery, and want to know when the parcel will arrive.
I built the whole system at StackRover:
- the storefront, in Bangla (Next.js)
- the admin, where the team runs orders, stock, shipping, content and reports
- the API behind both (Go and PostgreSQL)
![]()
The challenge
- Ad traffic on slow phones. Visitors come from Facebook and Instagram ads on mobile data, so the page has to load fast and the order button has to be obvious.
- Cash on delivery means calls and couriers. Every order is confirmed by phone, then handed to a courier, and the customer needs to track it.
- A small team runs everything. The same people handle products, stock, orders, blog posts and ad spend, so the admin has to make the daily work quick.
The solution
A storefront for buying, not browsing
Each product shows its price and discount, how many pieces are left, and two clear actions: Add to cart and Order now. Checkout is a short form built around cash on delivery. After ordering, customers can follow their parcel on a track order page.
![]()
The rest of the site builds trust: reviews from customers, a FAQ, a return policy, a blog, an about page and a WhatsApp link.
![]()
An admin for the whole business
- Orders: details, status changes and printable invoices, with new orders arriving in real time over a WebSocket and as push notifications.
- Shipping: orders are sent to the SteadFast courier from the admin, and a webhook brings delivery status back, so customers can track their parcel.
- Inventory: stock levels per product, so the storefront never sells what isn’t there.
- Products, blog posts and CMS pages, each with its own editor.
- Leads, captured from the site for follow-up calls.
- Reports: sales reports, per-order costs, and ad-campaign spend tracking.
Under the hood
- Go API on Fiber, with a clean handler → service → repository structure, JWT auth and validation. PostgreSQL with 41 migrations.
- Media pipeline: uploads are resized and converted to WebP and AVIF, so product photos stay sharp but light on mobile data.
- Real time: a WebSocket feed and Web Push notifications for new orders.
- SEO: a sitemap and prerendering for crawlers, with structured data.
- Email through Resend.
- Tests for the order, review, lead and media handlers.
- Deployment: Docker Compose behind Caddy, with automatic TLS.
- The storefront moved from a React SPA to Next.js 16, so pages arrive already rendered for both ad traffic and search engines.
Key features
- Bangla storefront with stock counts, Order now and cash-on-delivery checkout
- Order tracking for customers
- Reviews, FAQ, blog, return policy and WhatsApp contact
- Admin for orders, invoices, inventory, products, blog and CMS pages
- SteadFast courier integration
- Real-time order notifications (WebSocket and Web Push)
- Lead capture, sales reports and ad-spend tracking
- WebP and AVIF image pipeline, sitemap and prerendering