ARTICLE // ENGINEERING_INSIGHTS
Shopify 2026-07-25 5 min read

Dusting Off My Shopify Dev Skills

Share:

Building a Grass-Fed Meat & Kitchen Store Theme

A friend of mine recently started putting together a business selling grass-fed, grass-finished beef. He brought over a couple of cuts for us to cook and it was some of the best meat I have had in a long time. That meal got two things spinning in my head: first, how much I love cooking steak in cast iron, and second, how long it has been since I built a custom Shopify theme from scratch. Between managing full-stack builds, working with headless setups, and diving into AI workflows, my hands-on Shopify Liquid experience had gathered a little bit of dust. I decided the best way to get back up to speed was to build a full theoretical storefront for my friend's meat venture.

To make it feel like a real e-commerce experience, I did not want to just list three cuts of beef and call it a day. I am building a complete mercantile store: premium grass-fed meat cuts, grilling accessories like stainless steel cooking utensils, specialty butcher paper, and a series of custom dry rubs.

Here is how I set up the development environment, structured the store data, and got back into local theme development.

Setting Up the Sandbox (Dev Store & CLI)

If you have not touched Shopify theme development in a few years, the local toolchain has gotten remarkably smooth. The old days of saving a file, uploading via Theme Kit, and praying you did not break live Liquid code are long gone (last time I lived in shopify was 2018).

Spinning Up a Partner Dev Store

First, I hopped into my Shopify Partner account and created a new development store. Dev stores are completely free testing grounds that let you simulate a real merchant setup without starting a paid plan. Once the store was provisioned, I had a clean sandbox with full admin access, ready for products, collections, and custom Liquid templates.

Installing Shopify CLI

Modern Shopify theme workflows rely on the Shopify CLI. It handles authentication, local development servers, hot reloading, and seamless syncing with your store.

Getting the CLI set up locally only takes a minute with Node:

# Install the Shopify CLI globally
npm install -g @shopify/cli@latest
# Verify the installation
shopify version

From there, I authenticated the CLI against my partner account and pulled down a clean starter theme structure:

# Create a new theme project locally
shopify theme init my-meat-store-theme

# Change into the project directory
cd my-meat-store-theme

Running Local Theme Development

The real magic of the modern workflow is `shopify theme dev`. When you run this command, the CLI spins up a local web server and establishes a real-time connection with your development store.

shopify theme dev --store grass-fed-demo.myshopify.com

This gives you a local URL (usually `[http://127.0.0.1:9292](http://127.0.0.1:9292)`) along with a preview link.

Every time I save an edit to a `.liquid` file, a CSS stylesheet, or a JSON section schema in my local code editor, the changes hot-reload in the browser immediately. You get the full speed of local desktop development while still testing against actual data pulled from the Shopify cloud backend.

Curating the Catalog in Admin

A theme is only as good as the content driving it. To make the frontend sections look authentic, I spent time setting up a realistic product architecture inside the Shopify Admin.

Store Catalog Structure
├── Fresh Cuts (Collection)
│   ├── Grass-Fed Ribeye (Variants: 12oz, 16oz)
│   └── Pasture-Raised New York Strip
├── Cast Iron & Tools (Collection)
│   ├── 12-Inch Pre-Seasoned Skillet
│   └── Heavy-Duty Meat Press
└── Pantry & Prep (Collection)
    ├── Smoked Sea Salt Dry Rub
    └── Unwaxed Pink Butcher Paper Roll

Products and Variants

For the meat products, weight-based variants are essential. A 12oz ribeye has a different price point and SKU than a 16oz bone-in cut. I created variants with specific weights and pricing to test how my product grid templates handle variant pickers and stock notifications.

Inventories and Quantities

I populated real inventory counts across all items. This let me test out stock threshold warnings on the product display page (for instance, showing "Only 4 left in stock" when inventory drops below 5 units).

Collections and Categories

I set up smart collections based on product tags like `category:meat`, `category:cookware`, and `category:pantry`. This allowed me to build specific grid sections on the homepage to highlight featured steaks right next to the skillets needed to cook them.

What is Next?

Working through the Liquid templates, custom JSON sections, and cart behavior over the past few days has been a great refresher. The flexibility of Online Store 2.0 section architecture makes building modular layouts so much cleaner than it used to be.

I am currently finishing up the last few styling touches, cart drawer animations, and mobile responsive tweaks over the next couple of days. Once everything is wrapped up and deployed, I will be adding the live demo and source code over in the projects section right here on **bradbartell.dev**.

Stay tuned, and if you are ever in the market for a high-heat sear on a grass-fed beef, make sure you cook it in cast iron!

CHANNEL // COMM_OPEN

Ready to scale your team and tech?

I am currently open to Development Manager, Lead Developer, and Staff Developer roles. Let's discuss how I can bring value to your organization.