Joshua Grams Work Process Hire Email
Case study · E-commerce · Product · 2019 — 2026

3GRAMS: from a self-hosted store to a Shopify operation that ran itself.

Seven years designing, manufacturing, and selling a line of precision consumer accessories direct to customers. $1.4M+ in lifetime sales, a WooCommerce-to-Shopify migration that removed the store's single biggest failure point, and the growth and operations systems that let a very small team run like a bigger one.

Role
Founder, product lead, e-commerce operator
Scope
Product design, sourcing, storefront, merchandising, growth, operations
Stack
WordPress + WooCommerce → Shopify · Next.js ops dashboard · Meta Graph API
Outcome
$1.4M+ DTC sales · conversion up month over month after the migration
3GRAMS brand cover
01 · Context

A hardware brand that sold directly to the people who used it.

3GRAMS made precision ceramic accessories for a consumer hardware category where materials and tolerances matter to the buyer. Products were designed in-house, produced through six manufacturing partners overseas, and sold almost entirely direct to consumer through the brand's own store. The customer was an enthusiast who read spec sheets, compared materials, and came back for the next release.

That shaped every e-commerce decision. The storefront had to explain why a part was different, not just show it. Launches worked best as events. And because the team was small, anything that pulled attention away from product and marketing had a real cost.

$1.4M+
Lifetime DTC sales
7
Years operating
6
Manufacturing partners
100%
Storefront designed and built in-house
02 · The problem

The store's biggest conversion problem wasn't the design. It was uptime.

The first store ran on WordPress and WooCommerce on a private server I administered myself: cPanel, WHM, the database, backups. When checkout broke, and it did, the fix was a database restore through phpMyAdmin at whatever hour it happened. Each outage was lost revenue twice over: the orders that didn't complete, and the founder hours spent on infrastructure instead of the next product.

What was failing

Checkout outages tied to the server and plugin stack. Plugin updates that broke the cart. No managed payments. Every fix required server-level access and my time specifically.

What the business actually needed

A checkout that never went down, payments and tax handled by the platform, and a storefront I could change without touching a server. Less control, more reliability.

03 · The decision

Migrate to Shopify, and treat the migration as a product launch.

The tradeoff was explicit. Shopify meant giving up server control and some customization in exchange for managed checkout, payments, hosting, and an app ecosystem. For a small brand whose revenue depended on checkout working at 11pm on a drop night, reliability won.

  1. Catalog and customer migration. Products, variants, images, and customer records moved and verified before cut-over.
  2. Redirect map. Every old WooCommerce URL mapped to its Shopify equivalent so search rankings and inbound links survived.
  3. Theme rebuilt around the brand. Liquid theme designed in-house: product pages structured around materials and specs, collections organized the way customers actually shopped.
  4. Launch checklist. Test orders, payment flows, shipping rules, and tax settings signed off before DNS moved. Old server kept warm for a rollback window.
After the move, server-level failures went to zero. The time that had gone to infrastructure went back into product and launches, and conversion improved month over month from there.
04 · Storefront & merchandising

Designing pages for a buyer who reads.

I designed the storefront myself, end to end. The product page was the core design problem: a buyer comparing ceramic grades and tolerances needs the spec story above the fold, the variant choice to be obvious, and the add-to-cart to stay within reach while they read. Collections were built around use and compatibility rather than internal SKU logic.

05 · Growth system

Instagram was the largest channel, so I built the machine that ran it.

The brand's biggest outlet was Instagram, and content creation was the bottleneck. I built an automation stack on the Meta Graph API that handled content generation, scheduling, analytics, and engagement, managed from a Next.js and TypeScript operations dashboard wired to the Shopify catalog. Products and posts lived in one place; a launch could be planned, scheduled, and tracked without leaving the dashboard.

Next.jsTypeScriptMeta Graph APIShopify Admin APIContent planning
06 · Operations

Everything behind the add-to-cart button.

Sourcing and quality across six overseas manufacturing partners, inventory planning around production lead times, fulfillment, customer service, and the patent design and filing work that protected the product line. The storefront only converts if the product ships on time and arrives as described, so operations were part of the e-commerce job, not separate from it.

07 · What this looks like inside a team

I ran the whole thing. Here is what that built, and why I want to do it with a team.

Founders can read as a risk to a hiring manager: used to calling every shot, hard to manage, likely to leave. I understand the concern, so here is the honest version.