A gallery-grade storefront for a National Geographic-published photographer and painter, built to sell original paintings, fine art prints, and artist-designed apparel in one place.
Anirban Mandal spent over a decade building a body of work across oil and acrylic painting, pastel, watercolor, sketching, alcohol ink, and fine art photography, published in National Geographic and recognized by IPA, PX3 Paris, MIFA, and TIFA. A 2022 Shop-in-Shop at Oxford Bookstore on Kolkata's Park Street had already drawn collectors from nearly 20 countries, and today his work lives in gallery stores in Newtown, Kolkata and Agra.
What he didn't have was a way to sell that catalogue online with the same weight the physical gallery carries. He needed a storefront that could hold three very different product types, original paintings, fine art prints, and artist-designed apparel, without feeling like a generic template shop, and that could carry his story and his awards alongside the products themselves.
We built a custom React front end on a Node.js and Express backend rather than forcing the catalogue into an off-the-shelf template or Shopify theme, so the browsing experience, checkout flow, and admin tooling could all be shaped around how this particular gallery actually sells.
Selling original art and apparel usually means reshooting the same piece over and over: propped in a room for the wall art listing, then mocked up on every t-shirt colour and style, one photoshoot per product. That's hours of manual work repeated for every new piece.
We replaced that with a one-time setup. Once an admin defines where artwork should sit on a set of room scenes and t-shirt bases, a single upload of a new painting or print is all it takes, the engine handles every background and every garment automatically from there.
Past the storefront, this is a full commerce platform we built and operate: a hand-rolled admin CMS, a custom image-compositing engine for product photography, and an order pipeline that handles returns and refunds automatically instead of leaving them to manual follow-up.