Case study · Headless Shopify

Commerce architecture for my own art brand

ClientPalette TownMy art brand
RoleFounderDesigner, engineer, and content team
StackHeadless Shopify · Next.js · GSAP · Vercel · Gelato (print-on-demand) · Firebase · Klaviyo API · Claude (API)
TimelineSummer 2026
Livepalettetown.co

Palette Town is my personal art brand. I hand-draw vector designs inspired by Pokémon TCG and sell them as prints, canvas, shirts, and phone cases, all fulfilled print-on-demand through a headless Shopify storefront.

It started on Twitch where I'd stream Pokémon card pack openings and wanted giant card designs as posters on the wall behind me. As I searched online, nothing seemed to exist, so I decided to test my illustrator chops (or lack thereof) and make them myself. After a few iterations, I found my own design style and was quite proud of my new art. I hedged a bet that other people may want them too, and since I love building websites and learning how buyers make decisions, I built the entire business myself.

I wanted to test my marketer skills and wear every hat to see how far I could grow a business spending $0 on ads, through organic search and organic socials. Analytics and testing experiments are my idea of fun, so why not see what happens?

THE PROBLEM

The old store was costing me time and sales

The store's first build was a custom WordPress theme I never had time to polish between client projects, so I swapped it for a premade drag-and-drop theme.

Checkout trust leaked

Strangers were asked to type their card into a form they'd never seen. For a small fan-art shop, an unfamiliar checkout costs you the sale.

The site ran slow

Premade themes are bloated and it showed in every page load. For a store that lives on organic search, slow pages cost rankings and sales.

Editing ran slower

Each visual card list post contained 100+ images, and the admin re-rendered slower as a post grew. The content that drove the most traffic took the longest to make and was prone to errors.

Why Shopify

Familiar checkout, faster pages, professional emails

  1. A checkout buyers already trust

    I noticed my own behavior as a shopper: I reach for Shop Pay every time it's offered. Moving to Shopify meant meeting buyers inside a purchase flow they've used previously.

  2. A storefront without the bloat

    The new storefront is a headless Next.js frontend on Vercel, so every page got faster, and for a store that lives on organic search, speed is sales.

  3. Transactional emails that look right

    Shopify's order and shipping templates look professional out of the box. My WooCommerce setup was finicky to style and charged extra to attach tracking info.

THE TRADEOFF

I chose a stack with no CMS

What I gave up

I gave up a CMS entirely, and I miss it. I don't write markdown comfortably.

Why

I wanted to build an AI workflow that generated the content faster than I could manually. Editing component copy is familiar to me, so taking extra time to set up WordPress seemed unnecessary.

What replaced it

Conventions plus AI. I defined blog components with clear rules, and Claude writes the structured markdown against my component system from my description of the post.

BACK OFFICE

A purpose-built admin instead of a general-purpose one

The migration didn't leave me without tools. I built my own panel that does exactly 3 things my shop needs.

  • Votes become an email segment

    Visitors vote for the next poster with their email. Votes land in Firebase and sync to Klaviyo, so every future poster launches with a warm list of the people who asked for it.

  • Live curation in 30 seconds

    I can review incoming votes and user-suggested cards, then deploy ballot candidates to production.

  • A blog post in minutes, sources tracked

    I select related coverage from trusted news sources, then the Claude API drafts an original synthesis with the source tracked per post. I design a thumbnail in Figma, and deploy my new post on submit.

Claude eliminated the gap betweendeciding and shipping features

CONTENT OPS

Visual deck lists arefinally fast and error-free

Working locally with Claude Code, it now renames every image file to an SEO convention, generates titles and alt text across the catalog, and cross-checks posts against the card sets to confirm nothing was missed.

Work that used to be manual and error-prone became fast and, for the first time, error-free.

PRODUCTION

The storefront checklist nobody sees

  • Launch and fulfillment

    DNS cutover to Vercel with the shop's email routing preserved, and Gelato fulfillment integrated and order-tested end to end.

  • Search and schema

    A Merchant Center feed rejection diagnosed and fixed at the configuration level, product JSON-LD maintained against Google's requirements, and SEO packages written for all 23 prints from Search Console data.

  • Email and CRM

    Transactional templates patched to render store metadata correctly, and the Klaviyo pipeline segmenting the audience by the posters they voted for.

IMPACT

196K impressions in 3 months,$0 spent on ads

Blog posts no longer take days to build, faster pages hold their rank, structured data puts products into Google Shopping results, and the voting loop turns visitors into an email audience I own.

Ad spend, lifetime$0
Search impressions196KMay–Aug 2026
First 83 daysClicks +32% · impressions +23%Post-migration
Ranking queries1,100+ · 99% non-branded
Search reach169 countries
Catalog23 designs · 5 formats

Reflection

  1. Being my own client is the fastest feedback loop I've ever had. Having access to every data set is fascinating for my own learnings and gives me the confidence to collaborate with other marketers.

  2. Now that blog posts are streamlined, my new bottleneck is creating products in Shopify/Gelato. I may try to build a Claude pipeline that follows set guidelines for writing the content then creates the listings for me to review.

  3. Next time that I need a portal dedicated to a site, I will separate out the styling layer immediately, so that all aspects of the site use consistent components.

Next case study

Harland West Hollywood

Motion I staged into a house tour

Take the tour