Project / 01
Aminu Nepal
A production ecommerce storefront for a Nepali skincare brand, designed, built and shipped solo, with a separate standalone admin panel behind it.
Overview
Aminu Nepal is a production ecommerce storefront for a Nepali skincare brand. I designed and shipped it independently, end to end, which meant the customer storefront, the backend API and a separate standalone admin panel were all mine to build and keep running.
It is a real store rather than a demo: it handles products, collections, ingredients, coupons, orders and customer accounts.
My Role
Solo. There was no team to split this with, so the whole surface was my responsibility:
- Frontend storefront and the separate admin panel
- Backend API and data model
- Authentication and access control
- Image and email infrastructure
- Deployment
Architecture
The system is three deployable pieces rather than one monolith:
- Storefront, a Next.js App Router application in TypeScript.
- Admin panel, a second standalone Next.js application, kept separate from the storefront so the two have independent surfaces.
- Backend API, a Node.js and Express service using Prisma ORM over MySQL.
Client requests do not talk to the backend directly. They are proxied through
/api-proxy/*, so the backend origin is never exposed to the browser.
Authentication
Authentication is JWT based, with tokens delivered as httpOnly cookies rather
than stored anywhere JavaScript can reach them.
The admin side adds role based access control with two roles:
| Role | Access |
|---|---|
superadmin | Full access across every resource |
editor | Content level access |
The Admin System
The admin panel provides full CRUD across the entities the store actually runs on:
- Products
- Orders
- Blogs
- Coupons
- Users
- Collections
- Ingredients
Media and Email
Product and content imagery goes through Cloudinary, so uploads, storage and delivery are handled outside the application server.
Transactional email is sent with Nodemailer.
Ordering
Order processing currently supports cash on delivery, which is the payment method the store operates with today.