A working reference for the single most common — and most expensive — mistake in Shopify customization: edits that a theme update silently deletes.
Merchants describe finding out the hard way:
"Your code customizations won't carry over... I recently paid on Fiverr for some small optimizations. If I update, all of those changes are gone too?"
Yes. This repository shows exactly why, and exactly how to build the same features so it never happens.
Three customizations every store wants — trust badges, a promo bar, and a per-product shipping/returns panel — each built twice:
| Folder | What happens on a theme update | |
|---|---|---|
| ❌ | the-wrong-way/ |
Edits made directly in theme files. Silently deleted. |
| ✅ | the-right-way/ |
A theme app extension + metafields. Survives, untouched. |
Then HOW-TO-REPRODUCE.md walks you through proving it
live on a free development store in about 30 minutes.
If a customization is not stored in a theme file, updating the theme cannot remove it.
The wrong way puts your work in main-product.liquid, header.liquid,
buy-buttons.liquid — files Shopify replaces on every update, with no merge,
no diff, and no warning. The right way puts it in an app (theme app
extension) and in metafields, which the theme does not own and an update does
not touch.
Most Shopify customization sold on freelance marketplaces is done the wrong way, because it is faster to write and looks identical on day one. The cost lands later, on the merchant, when an update wipes work they paid for — and because nothing errors, a customer usually notices before they do.
Building it the right way takes a little more knowledge and almost no more time. This repo is that knowledge, as runnable code.
the-wrong-way/ direct theme edits — the anti-pattern, documented
the-right-way/
app-extension/ a real theme app extension (blocks, CSS, locales)
metafields/ the product metafield the shipping block reads
demonstration/ where the before/after result gets recorded
HOW-TO-REPRODUCE.md prove it yourself on a free dev store
MIT — see LICENSE. Use any of it in client work.