আমাদের নিজস্ব প্রোডাক্ট · মার্কেটপ্লেস
UniMarket, বাংলাদেশের জন্য বানানো একটি মার্কেটপ্লেস।
অনেক সেলার, একটি কার্ট। ক্রেতারা ক্যাশ অন ডেলিভারিতে দাম দেন, প্রতিটি শপের শিপমেন্ট অনুসরণ করেন, আর প্রতি ধাপে ইমেইল পান। সেলাররা সেলার সেন্টার থেকে নিজের শপ চালান, আর টিম অ্যাডমিন প্যানেল থেকে পুরো মার্কেটপ্লেস চালায়। এটি বাংলা ও ইংরেজিতে, অ্যাপের মতো ইনস্টল হয়, আর আমাদের নিজস্ব সার্ভারে চলে।
unimarket.22softwares.com-এ আর্লি অ্যাক্সেসে চালু, ডেমো ক্যাটালগসহ। unimarket.bd ডোমেইন পরিকল্পনায় আছে।
- Web
- Installable app (PWA)
- বাংলা · English
- Light & dark
- ভাষা, বাংলা ও ইংরেজি, আলাদা ঠিকানায়
- ২
- ক্যাটাগরি, ফ্যাশন থেকে ডিজিটাল ডাউনলোড পর্যন্ত
- ৩৪
- শপ থিম, যেগুলো সেলাররা বদলাতে পারেন
- ১০
- অর্ডারের ধাপ, প্রতিটিতে ইমেইলসহ: placed, confirmed, packed, shipped, delivered
- ৫
চালু মার্কেটপ্লেস
চালু সাইট থেকে নেওয়া পাবলিক স্টোরের স্ক্রিনশট। মার্কেটপ্লেস এখন আর্লি অ্যাক্সেসে, তাই ক্যাটালগে ডেমো ডেটা আছে।

হোমপেজ, ইংরেজি 
হোমপেজ, বাংলা 
ক্যাটাগরি পেজ 
ফ্ল্যাশ সেলসহ পণ্যের পেজ 
সেলারের শপ পেজ 
কেনাকাটার গাইড

ফোনে হোমপেজ 
ফোনে হোমপেজ, বাংলা 
ফোনে সব অফার
ক্রেতা, সেলার আর টিম যা পায়
একটি কার্ট, অনেক শপ
ক্রেতা একবারই চেকআউট করেন। অর্ডার ভেঙে প্রতিটি শপের জন্য একটি শিপমেন্ট হয়, প্রতিটির আলাদা ডেলিভারি চার্জ ও আলাদা স্ট্যাটাস। অ্যাকাউন্ট ছাড়াও গেস্ট হিসেবে অর্ডার করা যায়, আর ডিফল্ট পেমেন্ট ক্যাশ অন ডেলিভারি।
লগইন ছাড়া ট্র্যাকিং
প্রতিটি অর্ডারের একটি নম্বর আছে (UNI-3001 থেকে শুরু)। অর্ডার নম্বর আর ফোনের শেষ চার অঙ্ক দিলেই অর্ডার কোথায় তা দেখা যায়, আর শিপমেন্টের স্ট্যাটাস বদলালেই ক্রেতা ইমেইল পান।
প্রতিটি শপের জন্য সেলার সেন্টার
সেলাররা পণ্য, সার্ভিস ও ডিজিটাল ডাউনলোড তোলেন, কনফার্ম থেকে শিপ পর্যন্ত অর্ডার সামলান, ইনভয়েস ও লেবেল প্রিন্ট করেন, আয় দেখে উইথড্র করেন, আর ১০টি থিম ও ব্লকভিত্তিক পেজ বিল্ডার দিয়ে শপ পেজ সাজান।
গ্রোথের টুল ভেতরেই
ফ্ল্যাশ সেল ও ক্যাম্পেইন যেখানে সেলাররা যোগ দিতে পারেন, প্ল্যাটফর্ম ও শপ ভাউচার, ওয়ালেট থেকে ক্লিকপ্রতি দামে স্পন্সরড পণ্য, নিউজলেটার, পুশ নোটিফিকেশন আর প্রতিটি শপের প্রিন্ট করার মতো QR ফ্লায়ার।
মার্কেটপ্লেস চালানোর অ্যাডমিন প্যানেল
অর্ডার, সেলারের আবেদন ও আইডি যাচাই, পণ্য রিভিউ, পেআউট, ক্যাম্পেইন, হোম পেজ ও ব্যানার, ভিজিটর ও চেকআউট পরিসংখ্যান (ছেড়ে যাওয়া চেকআউটসহ), টু-স্টেপ সাইন-ইনসহ স্টাফ রোল আর অডিট লগ।
ইনস্টল করা যায়, ধীর ফোনেও দ্রুত
ব্রাউজার থেকে অ্যাপের মতো ইনস্টল হয়, ফোনে নিচে ট্যাব বার আছে, ধীর ইন্টারনেটেও চলে আর অর্ডারের আপডেট পুশ নোটিফিকেশনে পাঠাতে পারে।
একটি কোডবেস, চারটি অংশ
স্টোর, সেলার সেন্টার, অ্যাডমিন প্যানেল আর ইনস্টল করার মতো অ্যাপ, সবই আমাদের নিজস্ব সার্ভারে একটি TypeScript প্রজেক্ট থেকে চলে।
স্টোরফ্রন্ট
খুব কম ক্লায়েন্ট JavaScript সহ সার্ভারে রেন্ডার করা পেজ, প্রতিটি ভাষার আলাদা ঠিকানা ও hreflang, স্ট্রাকচার্ড ডেটা, সাইটম্যাপ আর Google Merchant পণ্যের ফিড।
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
সেলার সেন্টার ও অ্যাডমিন
একটি কোডবেসে দুই ধরনের সাইন-ইন: সেলাররা শুধু নিজের অর্ডার ও পণ্য দেখেন, স্টাফ পাসওয়ার্ড আর অথেনটিকেটর কোড দিয়ে ঢোকেন এবং নিজের রোলের ঠিক ততটুকু অনুমতি পান।
- Server actions
- Zod
- TOTP
- Audit log
ডেটা
নিজস্ব ইনস্ট্যান্সে MongoDB, অথেনটিকেশন চালু আর ন্যূনতম অনুমতির অ্যাপ ইউজার। টাকা রাখা হয় পূর্ণ পয়সায়, কখনো দশমিকে নয়, আর অর্ডারে স্টক অ্যাটমিকভাবে রিজার্ভ হয়।
- MongoDB
- Mongoose
- sharp
সাইন-ইন ও বার্তা
ক্রেতারা ইমেইল বা ফোনের ওয়ান-টাইম কোড দিয়ে, অথবা Google বা Apple দিয়ে সাইন-ইন করেন। অর্ডারের ইমেইল আমাদের নিজস্ব মেইল সার্ভার থেকে DKIM সাইন করে যায়, আর পুশ নোটিফিকেশন যায় Firebase Cloud Messaging দিয়ে।
- Firebase Auth
- FCM
- Postfix
- OpenDKIM
পরিচালনা
আমরা নিজেরাই চালাই
নিজস্ব ডেটাবেস, নিজস্ব ব্যাকআপ, নিজস্ব মেইল সেটআপ আর এক কমান্ডে ডিপ্লয় ও এক কমান্ডে রোলব্যাক।
- Cloudflare-এর পেছনে আমাদের নিজস্ব VPS-এ হোস্ট করা, Let’s Encrypt সার্টিফিকেট আর অ্যাপের সামনে nginx।
- নিজস্ব MongoDB সার্ভিস, সার্ভারের ভেতরেই সীমাবদ্ধ ও অথেনটিকেশন চালু, প্রতি রাতে ব্যাকআপ, ১৪ দিন রাখা হয়।
- ওয়েব সার্ভারে সাইন-ইন ও API-তে রেট লিমিট, সঙ্গে অ্যাপে ইউজারভিত্তিক লিমিট।
- অর্ডারের ইমেইল SPF, DKIM ও DMARC পাস করে এবং স্প্যামে নয়, ইনবক্সে পৌঁছায়।
- এক কমান্ডে ডিপ্লয় (সার্ভারে বিল্ড, সুইচ, হেলথ চেক) আর এক কমান্ডে আগের রিলিজে রোলব্যাক।
যে কঠিন সমস্যাগুলোর সমাধান করেছি
যে অংশ ক্রেতারা কখনো দেখেন না।
বাংলায় দ্রুত পেজ
- সমস্যা
- বাংলা ওয়েব ফন্ট বড়। প্রথম ডিজাইনের পথে আমরা একটি ফন্ট মেপেছি, প্রায় ২০০ KB।
- আমরা যা করেছি
- আমরা ফোন বা কম্পিউটারে আগে থেকে থাকা বাংলা ফন্ট ব্যবহার করি, আর শুধু ল্যাটিন অক্ষর ও সংখ্যার জন্য ছোট একটি নিজস্ব ফন্ট।
ফলাফল আমাদের পরীক্ষায় ওয়েব ফন্ট মোবাইল Lighthouse পারফরম্যান্স স্কোরের দশ পয়েন্টের বেশি কেড়ে নিয়েছিল, সিস্টেম ফন্টে কিছুই যায় না।
একটি চেকআউট, একাধিক সেলার
- সমস্যা
- একটি কার্টে একাধিক শপের পণ্য থাকতে পারে, প্রতিটির নিজস্ব স্টক, ডেলিভারি চার্জ ও স্ট্যাটাস, আর দুইবার ট্যাপে যেন দুটি অর্ডার না হয়।
- আমরা যা করেছি
- চেকআউট সব দাম ডেটাবেস থেকে আবার হিসাব করে, স্টক অ্যাটমিকভাবে রিজার্ভ করে, অর্ডারকে প্রতি শপে একটি শিপমেন্টে ভাগ করে এবং একই সাবমিট আবার এলে উপেক্ষা করে।
ফলাফল প্রতিটি সেলার শুধু নিজের শিপমেন্ট দেখেন, ক্রেতা একটি অর্ডারই দেখেন শপ ধরে টাইমলাইনসহ, আর বাতিল করলে স্টক ফেরত আসে।
খোলা ট্যাব না ভেঙে আপডেট
- সমস্যা
- ডিপ্লয়ের পর যে ক্রেতা ট্যাব খোলা রেখেছেন, তিনি পুরোনো সংস্করণের বোতামে ক্লিক করলে এরর দেখতে পারেন।
- আমরা যা করেছি
- প্রতিটি রিলিজের নিজস্ব ডিপ্লয়মেন্ট আইডি থাকে, আর যে রিলিজের অ্যাকশন আর নেই তা ধরা পড়লে পেজ নিজে রিলোড হয়।
ফলাফল দিনের বেলাতেও ডিপ্লয় করা যায়, কেউ ভাঙা বোতাম দেখেন না।
ডেমো নয়, প্রোডাক্টের মতো পরীক্ষিত
- আমাদের লোকাল প্রোডাকশন বিল্ডে Lighthouse: পরীক্ষা করা প্রতিটি পেজে Accessibility, Best Practices ও SEO ১০০, মোবাইলে Performance ৯৩ থেকে ৯৮।
- পুরো অ্যাপের নিরাপত্তা রিভিউ: অ্যাকাউন্ট দখলের ঝুঁকিগুলো আগে, মাঝারি ঝুঁকিগুলো পরে ঠিক করা হয়েছে।
- চালু সাইটে অর্ডার, বাতিল ও ট্র্যাকিংয়ের পুরো ফ্লো এন্ড টু এন্ড পরীক্ষা, প্রতি ধাপে যাওয়া ইমেইলসহ।
- টাইপ চেক, আর ফোন নম্বর যাচাই ও টাকার হিসাবের ইউনিট টেস্ট, আর কোনো বাংলা স্ট্রিং বাদ গেলে বিল্ড ব্যর্থ হয়।
প্রযুক্তি
- Next.js
- React
- TypeScript
- Tailwind CSS
- MongoDB
- Firebase
- nginx
- Postfix
- Cloudflare
এভাবে তৈরি একটি মার্কেটপ্লেস চান?
আমরা মাল্টি-সেলার স্টোর শুরু থেকে শেষ পর্যন্ত ডিজাইন, তৈরি ও পরিচালনা করি: স্টোরফ্রন্ট, সেলারদের টুল, অ্যাডমিন, পেমেন্ট, ডেলিভারি, ইমেইল আর হোস্টিং।