Nozzled Studios

A Davao City print studio's first shop, from browsing the shelf to a printed packing slip

Product design · Engineering · Aug 2026 to Sep 2026 · Web

  • Product design
  • Full-stack engineering
Nozzled Studios overview
  • E-commerce
  • Product design
  • Engineering

Overview

Nozzled Studios is a maker brand in Davao City that designs and 3D-prints small objects: PopSockets, keychains, fidget clickers, desk pieces. Before this project, the whole business ran through an Instagram DM inbox.

Through SGJR Studio I designed and built their first storefront and the dashboard the owner runs it from: one Next.js application, a guest checkout with card, e-wallet and manual payment rails, and the full path from a placed order to a printed packing slip. The engagement was a fixed five-week Phase 1 with a written plan, and that plan doubled as the progress record the client read every week.

The Problem

Selling through DMs works until it doesn't. Every sale was a conversation: price asks, a GCash screenshot, stock tracked from memory. Two people could claim the last piece and both pay. Nothing told the buyer what happens next, and nothing told the owner which orders still needed a decision.

The local market made the gap obvious. Searching for 3D printing in the Philippines surfaces print services that quote against an uploaded file, not objects you can buy now. Designed pieces with a price and a buy button was an open lane. The thing to beat was not a competitor's website. It was the owner's own inbox.

Goals and Constraints

  • Running cost of zero. The store had to sit inside free tiers, with nothing taken per sale and every account in the client's name. When a hosting choice broke that rule's spirit, it got reversed in writing.
  • The owner confirms payments by hand. GCash and bank transfer have no webhook. The system had to hold stock the moment an order is placed, for 24 hours, so two buyers can never both pay for the last piece while a receipt waits for review.
  • Buyers arrive from Instagram on phones. The catalogue had to be fast on Philippine mobile data, so browsing never touches the database: shop pages render static and serve from the edge.
  • No accounts, no logins for buyers. A guest checkout, a reference code, and an order lookup guarded by the last four digits of the buyer's phone number.
  • Correctness without a scheduler. A held piece frees itself the moment its 24 hours lapse, with no background job whose quiet failure could oversell the shop.

The Solution

One Next.js application carries both halves: the storefront and the owner's dashboard as route groups in the same deploy. The shop opens on the brand's cobalt, hands off to a light catalogue grid, and keeps the whole buying path on one visual system.

The shelf, served from the edge

Nozzled Studios shop root on a phone, cobalt hero above a grid of printed pieces

One price, one button, no login

Product page for a 3D-printed PopSocket with price, stock count and one buy button

Checkout in three steps

Checkout details step on a phone with contact fields and a collapsible order summary

Payment is a choice of rails. PayMongo's hosted checkout takes cards and e-wallets and confirms the order the instant the gateway reports it paid. The manual rails stay: a buyer can pay by GCash or bank transfer, upload the receipt, and the order waits for the owner's one-tap confirm or a reject with a reason. Every total is computed on the server, never trusted from the client.

Placing an order holds the piece for 24 hours

Desktop checkout with contact and delivery form beside an order summary stating the 24 hour hold

Placing an order issues a reference code from an unambiguous alphabet and holds the stock for 24 hours. The hold releases itself lazily when it lapses: correctness never depends on a cron firing. The hourly sweep that follows is bookkeeping, and a missed run oversells nothing.

Process

Week one settled everything that could be settled on paper: a competitor and buying-flow analysis, a moodboard study that reduced 26 references to a palette and six layout patterns, a token spec, a data model with its three atomic transactions, and an 18-slide strategy deck. The client's logo only existed inside an .ai master, so I opened it and pulled all four lockups out as clean vector, with the Reality Printed Daily roundel isolated to spin as the site loader.

Nozzled Studios wordmark and the Reality Printed Daily roundel in off-white on cobalt
The lockups, rebuilt as clean vector from the client's .ai master.

Decisions that needed arguing got written down as ADRs instead of settled in chat. Holding stock at checkout rather than at confirmation is one. Hosting is another: the original plan sat on a free tier whose terms ban shops that take payment, so I moved the build and wrote the reversal up, with the superseded decisions kept for the reasoning they still carry.

Once the shop was real, feedback got the same discipline. UAT ran against a shared checklist and a numbered bug log with a severity ladder, where the tester, not me, confirms a fix. Each round shipped to production behind its own gate list, with a rollback point recorded before any production write.

Key Features

A dashboard built around one question: what needs my decision? Orders arrive sorted by what the owner has to do next. Confirming a payment locks the stock, emails the buyer, and opens the packing slip with the print dialog already on screen, because confirming is the moment the box gets packed.

Nozzled Studios dashboard with orders, enquiries, stock, blog and analytics sections, open on a product's photo manager
The owner's side: orders, stock, enquiries, reviews, photos and the content editor in one place.

An order status page with no account behind it. A buyer looks an order up with the reference code plus the last four digits of their phone, because the code alone would be an enumeration surface over customer details.

Custom work as a first-class path. Commissions were previously DM threads. Now an enquiry form captures the piece, size, finish and budget, and promises exactly what the studio can deliver: a ballpark by email, not a form letter.

Track your order page asking for a reference code and the last four digits of the phone number
Custom work page with an enquiry form and a three step explanation of how commissions work

Tested where hand-testing cannot reach. Automated tests cover the three failures a manual pass would miss: two buyers racing for the last unit, a hold expiring with the scheduler switched off, and a reference code collision.

Cart page with one printed piece, server computed subtotal and a single checkout button
Every total on the cart and checkout is computed on the server.

Outcome

Phase 1 shipped: the storefront with the full money path, the owner dashboard, and the custom work enquiry. The build went through structured UAT rounds against the shared bug log, and several production releases since launch have each shipped behind their own verification gates with a recorded rollback point.

The production build is live and selling the real catalogue. As I write this, the studio's domain still points at their link-in-bio page, with the cutover to the store sitting in the launch checklist. Phase 2, the brand and custom-work expansion, is scoped and waiting on the shop to earn it, which is how the client wanted it.

Tools used

Next.js, PayMongo