Skip to content

Tech stack

Every framework, library and service BabyMart uses, with the exact versions from each package.json.

BabyMart is TypeScript from end to end. React 19 runs the storefront, the admin dashboard and the mobile app; Express and MongoDB run the API; Turborepo and pnpm tie it all together. The versions below are the ranges declared in each app’s package.json.

flowchart LR
  subgraph Clients
    W["Storefront<br/>Next.js 16"]
    A["Admin<br/>Vite 8 + React 19"]
    M["Mobile<br/>React Native 0.88"]
  end
  API["API<br/>Express 5 + Mongoose 9"]
  DB[("MongoDB")]
  W --> API
  A --> API
  M --> API
  API --> DB
  API --> S["Stripe · SSLCommerz"]
  API --> C["Cloudinary · S3"]
  API --> E["SMTP email"]
Tool Version Where it is set
Node.js >=22.12.0 root package.json → engines
pnpm 9.15.9 root package.json → packageManager
Turborepo ^2.11.10 root package.json
TypeScript ^6.0.3 every app (TypeScript 7 is out, but typescript-eslint and @astrojs/check do not support it yet)
ESLint ^10.14.0 root and every web app (the mobile app uses ^8.57.1, as React Native’s ESLint config expects)
Prettier ^3.9.10 root
package.json
Package Version Used for
next ^16.4.5 App Router, server components, route handlers
react, react-dom ^19.3.1 UI
tailwindcss ^4.3.4 Styling, with shadcn-style Radix components
zustand ^5.0.16 Cart, wishlist, user, compare and currency stores
stripe / @stripe/stripe-js ^23.1.0 / ^10.2.1 Checkout Sessions and webhook
firebase ^13.2.0 Google and GitHub sign-in popups
react-hook-form + zod ^7.91.0 / ^4.6.7 Forms and validation
motion ^14.9.1 Animation
recharts ^3.10.1 Customer analytics charts
next-sitemap ^4.2.3 Sitemap
vitest ^5.1.0 Tests
apps/web/package.json
Service What BabyMart uses it for Needed to start?
MongoDB (local or Atlas) Every piece of data Yes
Stripe Card payments, webhook confirmation Only for card checkout
SSLCommerz Payments in BDT (sandbox or live) No
Firebase Auth Google and GitHub sign-in on web and admin Admin needs the config to load
Cloudinary or AWS S3 Product, banner and avatar images Only for uploads
SMTP (Gmail by default) Order confirmation, invoices, password reset No

The exact variable names for each service are on Environment variables.