
Featured
Customer Web Portal
Marjon Customer Cabinet
Marjon Customer Cabinet is a customer-facing web portal for business clients of Marjon in Uzbekistan. It is built as a pnpm + Turborepo monorepo that hosts two products: Marjon Reklama, where customers create and track advertising deals on vehicles, review payments and follow vehicle routes on a map, and Marjon Yuk, where they manage cargo, packages and shipment tracking. The app follows Feature-Sliced Design with strict one-way dependencies between the host app, the domain packages and a shared design system, and is localized in Uzbek and Russian.
Project Information
Role: Frontend Developer
Team: Team Project (Frontend + Backend + Mobile)
Duration: 6 months
Year: 2026
Tech Stack
React 19
TypeScript
Vite
Tailwind CSS 4
Radix UI / shadcn/ui
React Router 7
TanStack Query
Zustand
Formik + Yup
Axios
Leaflet
Recharts
Turborepo
pnpm Workspaces
Vitest
Sentry
PostHog
Key Features
- Advertising deals: list, details and status tracking
- Order wizard for creating new ad campaigns
- Payment history and payment details
- Vehicle route history on an interactive map
- Cargo and shipment tracking
- Login, signup, profile and settings
- Contact and support page
- Uzbek and Russian localization
- Guided onboarding tours for new users
My Responsibilities
- Developed features in the Feature-Sliced Design monorepo across the host app and the ads and shipment domain packages
- Built ad deal management, the order wizard and payment history screens
- Implemented map-based vehicle route history with Leaflet, clustering and heatmap layers
- Built cargo and shipment tracking pages for the Marjon Yuk product
- Integrated REST APIs with Axios and TanStack Query, including JWT session handling
- Implemented login, signup, profile and settings flows with Formik and Yup validation
- Set up Sentry error monitoring and PostHog analytics
- Followed team conventions: ESLint, Prettier, Husky hooks and conventional commit messages
Advantages
- Two products, one account: advertising and cargo in a single customer portal
- Customers see where their branded vehicles have driven, directly on a map
- Clear separation of domains keeps each package independent and easy to maintain
- Shared design system gives a consistent look across all screens
- Localized in Uzbek and Russian for local business customers
Challenges
- Keeping ads and shipment domains independent while sharing one design system
- Rendering long vehicle routes and many map points without slowing the UI
- Building a multi-step order wizard with validation across steps
- Working in a monorepo with several packages and a shared build pipeline
Solutions
- Enforced one-way dependencies between the host app, domain packages and shared-ui with ESLint import rules
- Used marker clustering, heatmaps and GeoJSON tiling to keep maps responsive
- Used Formik with Yup schemas to validate each step of the wizard
- Used Turborepo to orchestrate builds and caching, and lazy-loaded pages to reduce the initial bundle











