H

Case study

PrintMy3D — 3D Printing E-Commerce

A storefront with 3D STL model viewer, live volume-based pricing, Cashfree payments, and a full admin dashboard.

  • Next.js
  • Three.js
  • PostgreSQL
  • Cashfree

Problem it solved

A 3D printing business needed an online storefront where customers could upload models, get instant quotes, and pay — without back-and-forth emails. They also needed an admin panel to manage products, orders, quotes, and content.

What I built

A full e-commerce platform with two sides: a customer-facing storefront and a business-facing admin dashboard.

Storefront

  • 3D STL viewer — customers can upload and preview their 3D models directly in the browser using Three.js
  • Quote configurator — live pricing calculated from model volume, material selection, and quantity
  • Product catalog — browsable product pages with filtering and search
  • Cashfree payment integration — full checkout flow with payment gateway SDK and webhook verification
  • Google OAuth — simple authentication without forcing account creation
  • Multi-locale support — 13 Indian locales including RTL layout support

Admin dashboard

  • Product management — create, edit, and organize the catalog
  • Order tracking — view and manage incoming orders with status updates
  • Quote management — review and respond to custom quote requests
  • Blog editor — publish content for SEO and customer education
  • User management — view customer accounts and their order history
  • Settings — configure pricing rules, materials, and business parameters

Technical decisions

Three.js for in-browser 3D

The key differentiator is that customers can see their model before ordering. I used Three.js to render STL files client-side. The viewer handles rotation, zoom, and calculates the model volume which feeds directly into the pricing engine.

Layered service architecture

The codebase uses strict vertical-slice modules with a layered pattern: services call repositories, repositories call Drizzle, and nothing leaks across boundaries. This keeps the admin and storefront logic cleanly separated while sharing the same database and auth layer.

Cashfree over Razorpay

The client preferred Cashfree for lower transaction fees. I integrated the payment gateway SDK for the checkout flow and built webhook handlers for order confirmation. The payment flow handles edge cases like failed payments, duplicate webhooks, and reconciliation.

Outcome

The platform is live and serving real customers. The client can manage their entire business through the admin panel without needing developer involvement for day-to-day operations.