<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://the-lean-ecommerce.gitlab.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://the-lean-ecommerce.gitlab.io/" rel="alternate" type="text/html" /><updated>2026-10-08T16:34:10+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/feed.xml</id><title type="html">The Lean Ecommerce Blog</title><subtitle>Practical notes, product ideas, and operating guides for lean ecommerce teams.</subtitle><entry><title type="html">I Plan Collection-Page Swatches Before I Touch My Shopify Theme</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/08/i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/" rel="alternate" type="text/html" title="I Plan Collection-Page Swatches Before I Touch My Shopify Theme" /><published>2026-10-08T16:33:09+00:00</published><updated>2026-10-08T16:33:09+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/08/i-plan-collection-page-swatches-before-i-touch-my-shopify-theme</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/08/i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/"><![CDATA[<p>A collection page can make a color-heavy catalog feel easy to browse, or it can turn every click into a tiny mystery. I learned to stop treating swatches as a product-page-only detail after watching shoppers land on a collection, scan six nearly identical thumbnails, and leave before they found the color they actually wanted.</p>

<p>The fix was not a theme rewrite. It was a small planning pass: decide what a color means in the catalog, then make product-page and collection-page behavior agree. <a href="https://apps.shopify.com/swatch-colors-ultimator">Supra Swatch Colors</a> is useful here because it can turn variant options into color or image swatches, link separate products, and show swatches on collection pages without code. But the app only looks thoughtful when the catalog decision underneath it is thoughtful.</p>

<h2 id="start-with-the-catalog-question-not-the-swatch-style">Start With the Catalog Question, Not the Swatch Style</h2>

<p>My first note is brutally simple: <strong>does this color keep the same purchasable product, or does it become a different product page?</strong></p>

<p>If Blue, Moss, and Sand are variants of the same tee—with the same description, price logic, fit notes, and inventory story—I keep them as variants. The shopper can choose a color without losing context. If each colorway is really its own product because it has different imagery, merchandising, price, or inventory, I link separate products instead.</p>

<p>That choice changes what a collection page should communicate. Variant swatches say, “this card has more colors.” Linked-product swatches say, “this family has neighboring products.” I use <a href="https://the-lean-ecommerce.blogspot.com/2026/10/shopify-color-swatches-variants-or.html">this variants-versus-linked-products guide</a> as a sanity check whenever a color group starts behaving like a merchandising collection.</p>

<p><img src="/assets/img/posts/2026-10-08-i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/image-01-66deec1de40e.webp" alt="Hand-drawn decision between variant and linked-product swatches" /></p>

<h2 id="make-the-collection-page-answer-one-fast-question">Make the Collection Page Answer One Fast Question</h2>

<p>On a product page, a swatch can support close comparison. On a collection page, it has a more urgent job: help someone decide whether a card is worth opening. That is why I only expose the colors that are real choices a shopper can act on. Decorative “available in many colors” dots that do not correspond to a visible option are just catalog noise.</p>

<p>Before enabling collection swatches, I make a quick three-column scratch list:</p>

<ul>
  <li><strong>Show now:</strong> colors that are in stock and purchasable in the displayed market.</li>
  <li><strong>Group together:</strong> alternate colors that belong to one product family.</li>
  <li><strong>Keep separate:</strong> finishes, bundle differences, or products whose copy and imagery genuinely need their own card.</li>
</ul>

<p>Then I look at the first twelve products in the collection. If the color dots make it easier to distinguish items at a glance, they stay. If every card gains six tiny dots and the actual product silhouettes disappear, I simplify. The useful detail is not the biggest number of swatches; it is the first useful decision.</p>

<p><img src="/assets/img/posts/2026-10-08-i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/image-02-3c8f807dc8b4.webp" alt="Hand-drawn Shopify collection page color filtering workflow" /></p>

<h2 id="build-a-tiny-naming-system-before-you-automate-anything">Build a Tiny Naming System Before You Automate Anything</h2>

<p>Color swatches amplify inconsistent names very efficiently. A catalog with “Navy,” “Midnight,” and “Deep Blue” might be correct editorially, but it is hard to scan and harder to maintain. I pick a source of truth for each family—usually the option value—and normalize names before I worry about shape, tooltip, or hover effect.</p>

<p>This is where a swatch app’s color detection or product-image option can speed up setup, but I still inspect the output. The color needs to represent the item, not merely the loudest pixel in its photo. For a deeper audit pass, I reuse the checklist from <a href="https://how-to-blog.gitlab.io/2026/10/04/how-to-audit-shopify-swatch-labels-before-a-color-launch/">How to Audit Shopify Swatch Labels Before a Color Launch</a>.</p>

<p>A compact rule set has held up well for me:</p>

<ol>
  <li>Use one customer-facing name per actual color.</li>
  <li>Reuse that exact name across product and collection pages.</li>
  <li>Reserve image swatches for patterns, materials, and finishes where a flat color would mislead.</li>
  <li>Let the displayed swatch match the variant or linked product that will actually open.</li>
</ol>

<h2 id="test-the-whole-browse-loop">Test the Whole Browse Loop</h2>

<p>I do not call collection-page swatches finished after one desktop screenshot. I click through the loop that a shopper will actually use: collection card, chosen swatch, destination product, selected color, back to collection. Supra Swatch Colors supports product and collection pages across Shopify themes, plus multilingual shops, so this is also the moment to check the markets and languages that matter to the store—not just the admin’s default view.</p>

<p><img src="/assets/img/posts/2026-10-08-i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/image-03-0cc4811796d8.webp" alt="Hand-drawn pre-launch checklist for Shopify color swatches" /></p>

<p>My pre-launch pass takes about ten minutes:</p>

<ul>
  <li>Check mobile first; a wrap of swatches can change the whole card height.</li>
  <li>Open every color in a small representative sample.</li>
  <li>Confirm out-of-stock behavior is deliberate.</li>
  <li>Compare collection cards with the product-page options.</li>
  <li>Switch storefront language if the store is multilingual.</li>
  <li>Test a product with an image swatch and one with a standard color swatch.</li>
</ul>

<p>I also compare the collection grid with the product-page information architecture. A clean product page needs equally clear supporting details, which is why I keep <a href="https://outils-et-tutoriels.github.io/2026/10/04/organiser-contenu-produit-shopify-onglets-accordeons/">this guide to organizing Shopify product information</a> nearby when a collection refresh expands into a broader merchandising pass.</p>

<h2 id="let-the-collection-do-less-work">Let the Collection Do Less Work</h2>

<p>The best collection-page swatches make the next click more confident. They do not need to explain sizing, materials, shipping, or every distinction between related products. Give them one job: reveal the meaningful color choices without making the grid feel denser than the product catalog itself.</p>

<p>If you want a more visual reference for what useful swatch detail looks like, <a href="https://outils-et-tutoriels.github.io/2026/10/05/7-details-qui-rendent-un-nuancier-shopify-vraiment-utile/">7 Détails Qui Rendent un Nuancier Shopify Vraiment Utile</a> is a good companion read.</p>

<p>My next step is always the same: choose one collection, define whether its colors are variants or linked products, and test twelve cards on a phone. Then <a href="https://apps.shopify.com/swatch-colors-ultimator">install Supra Swatch Colors</a> and set up the swatches around that real catalog decision—not around whatever layout happens to look busy in the theme editor.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="ecommerce" /><category term="product-pages" /><category term="collection-pages" /><category term="swatches" /><summary type="html"><![CDATA[A practical Shopify workflow for deciding which color swatches belong on collection pages before a launch.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-08-i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/cover-f92d45e66c05.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-08-i-plan-collection-page-swatches-before-i-touch-my-shopify-theme/cover-f92d45e66c05.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Built a Product Context Card Before Automating Shopify Blog Posts</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/08/i-built-a-product-context-card-before-automating-shopify-blog-posts/" rel="alternate" type="text/html" title="I Built a Product Context Card Before Automating Shopify Blog Posts" /><published>2026-10-08T14:34:49+00:00</published><updated>2026-10-08T14:34:49+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/08/i-built-a-product-context-card-before-automating-shopify-blog-posts</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/08/i-built-a-product-context-card-before-automating-shopify-blog-posts/"><![CDATA[<p>My first few attempts at Shopify blog automation had a familiar failure mode: the draft was technically tidy but could have belonged to almost any store. It had a keyword, a few headings, and a CTA. It did not have enough of the actual catalog in it to help a shopper make a decision.</p>

<p>The fix was smaller than a full content strategy. Before I automate a post, I make one product context card. It is a compact source sheet that tells the generator what the post is <em>for</em>, what it may safely say, and where a reader should go next. <a href="https://supra-blog-automation.sktch.io/">Supra Blog Automation</a> is useful here because it can work from a topic, goal, product or collection context, visuals, internal links, and a publish-or-draft choice. The card makes those inputs deliberate instead of accidental.</p>

<p><img src="/assets/img/posts/2026-10-08-i-built-a-product-context-card-before-automating-shopify-blog-posts/image-01-bf557d7883c9.webp" alt="Hand-drawn product context ingredients flowing into a blog draft" /></p>

<h2 id="the-five-things-on-my-card">The Five Things on My Card</h2>

<p>I keep the card short enough that it gets made. For one product or collection, I write:</p>

<ol>
  <li><strong>The customer question.</strong> Not a keyword dump—the real question a buyer asks before or after purchase. For a ceramic-mug collection, that could be whether a finish is dishwasher-safe or how to choose a giftable size.</li>
  <li><strong>The product-specific answer.</strong> One or two concrete benefits, use cases, or selection criteria pulled from the catalog. If I cannot substantiate it from the product information, it stays off the card.</li>
  <li><strong>Proof and boundaries.</strong> Source URLs, compatible collections, details that need a human check, and claims I will not let the draft invent.</li>
  <li><strong>The helpful destination.</strong> A product, collection, or a related guide that genuinely resolves the next question. This keeps internal links useful rather than decorative.</li>
  <li><strong>The job of the post.</strong> Inform, help selection, support a launch, or answer a repeat support question. One job beats a vague request to “write SEO content.”</li>
</ol>

<p>That is intentionally less elaborate than the full <a href="https://tools-and-how-tos.github.io/2026/09/29/how-to-build-a-reviewable-seasonal-shopify-content-calendar/">reviewable seasonal content calendar</a>. The calendar decides what should exist; the card gives each individual post enough shop-specific material to earn its place.</p>

<h2 id="turn-the-card-into-a-draft-brief">Turn the Card Into a Draft Brief</h2>

<p>Once the card is solid, I turn it into a simple brief: topic, audience, post goal, the product or collection to feature, and the tone constraints. In Supra Blog Automation, I would generate this as a draft first—not because automation is unreliable, but because product facts and brand voice deserve an owner.</p>

<p>A useful prompt shape is: “Help a first-time buyer choose the right mug size. Use the verified capacity and care notes in the product context. Link to the collection only where it helps selection. Avoid claims about durability that are not on the source card.”</p>

<p>That specificity is what separates product-aware content from the generic output I was trying to escape. It also makes image choices easier: the app can use product images, stock, or generated visuals, but the card tells it what visual evidence is relevant.</p>

<p><img src="/assets/img/posts/2026-10-08-i-built-a-product-context-card-before-automating-shopify-blog-posts/image-02-3902f1d08d02.webp" alt="Hand-drawn review gate before recurring Shopify blog publishing" /></p>

<h2 id="keep-three-checks-human">Keep Three Checks Human</h2>

<p>I still run a lightweight review before a recurring automation releases anything:</p>

<ul>
  <li><strong>Accuracy:</strong> Are the product details, availability notes, and comparisons actually supported?</li>
  <li><strong>Voice:</strong> Would a person from this store say it this way, or did the draft slip into generic advice?</li>
  <li><strong>Journey:</strong> Does every link earn its click, and is the product mention a useful next step rather than a hard sell?</li>
</ul>

<p>This is the same reason I like a draft-review workflow over blind publishing. A small review gate prevents a fast system from scaling a small mistake. If you are starting with recurring posts, <a href="https://how-to.the-lean-ecommerce.com/2026/09/28/how-to-set-up-a-reviewable-recurring-shopify-blog/">a reviewable Shopify blog setup</a> is a good companion process.</p>

<h2 id="let-the-card-improve-the-next-card">Let the Card Improve the Next Card</h2>

<p>After a post is live, I note two things: which question it answered best and which follow-up question appeared in comments, support, or search data. That becomes the seed for the next card. The result is not “AI writes the blog for me.” It is a steady loop where real product knowledge becomes useful articles, internal links expose the next helpful page, and each post creates a better brief for the next one.</p>

<p><img src="/assets/img/posts/2026-10-08-i-built-a-product-context-card-before-automating-shopify-blog-posts/image-03-c293b6151be7.webp" alt="Hand-drawn recurring Shopify content loop with products, posts, links, and calendar" /></p>

<p>This also makes one product do more honest work. A sizing question can point toward a product-page decision path; a comparison question can support a collection guide; a recurring concern can become a more complete resource. I used a similar principle when <a href="https://the-lean-ecommerce.github.io/2026/10/06/how-i-turn-shopify-content-decisions-into-publishable-posts/">turning Shopify content decisions into publishable posts</a>: the operating decision comes first, then the article.</p>

<h2 id="start-with-one-product-not-a-content-factory">Start With One Product, Not a Content Factory</h2>

<p>If your blog is quiet because every post begins with an empty document, do not start by scheduling thirty vague topics. Pick one product or collection that gets repeated questions. Build one context card. Generate one draft with <a href="https://apps.shopify.com/supra-blog-automation">Supra Blog Automation on Shopify</a>, review it against the card, and publish only when the reader journey makes sense.</p>

<p>That first card is a tiny operational artifact, but it changes the quality of everything downstream: the brief, the internal links, the visuals, the CTA, and the next post you decide to make.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="content-marketing" /><category term="blog-automation" /><category term="seo" /><category term="ecommerce" /><summary type="html"><![CDATA[A practical product-context card that keeps Shopify blog automation specific, useful, and reviewable.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-08-i-built-a-product-context-card-before-automating-shopify-blog-posts/cover-84f48230bc8d.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-08-i-built-a-product-context-card-before-automating-shopify-blog-posts/cover-84f48230bc8d.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Ran a Variation Audit Before Editing My Etsy Listings in Bulk</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/07/i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/" rel="alternate" type="text/html" title="I Ran a Variation Audit Before Editing My Etsy Listings in Bulk" /><published>2026-10-07T18:39:20+00:00</published><updated>2026-10-07T18:39:20+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/07/i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/07/i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/"><![CDATA[<p>I had a familiar shop-ops itch: a group of Etsy listings needed a pricing and variation cleanup, but I did not trust myself to press a big button until I could explain exactly what would change. The risk was not the edit itself. The risk was a tidy-looking batch that quietly touched the wrong size, color, or SKU.</p>

<p>That is why I now do a variation audit before I use <a href="https://bulk-listing-editor.webyze.com/">Bulk Listing Editor</a>. The app has separate Listing and Variation modes, which is useful precisely because a product-level fix and an option-level fix are not the same job. Its workflow is simple—search, select, specify the change—but the thinking beforehand needs to be just as deliberate.</p>

<p><img src="/assets/img/posts/2026-10-07-i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/image-01-9acb1d99c155.webp" alt="Three-pass Etsy listing audit workflow" /></p>

<h2 id="the-note-i-write-before-touching-the-catalog">The note I write before touching the catalog</h2>

<p>My audit starts with one sentence: <strong>which customer-facing inconsistency am I fixing, and which listings are allowed to move?</strong></p>

<p>For example: “Update the price for the small and medium versions of this autumn mug collection; do not change large, personalized, or made-to-order versions.” That sentence forces a boundary. It is the same move that kept my <a href="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/">Shopify bulk price change</a> from becoming a cleanup spree.</p>

<p>A fuzzy goal—“make variations consistent”—is not a batch-edit instruction. It is an invitation to discover exceptions after the fact. Before I open the editor, I write down:</p>

<ul>
  <li>the listings that belong in scope;</li>
  <li>the variation names I expect to see;</li>
  <li>the fields that can change;</li>
  <li>the listings that must stay out; and</li>
  <li>the smallest sample I can use to prove the rule.</li>
</ul>

<p>That last line matters. If I cannot state the sample, I probably do not understand the rule yet.</p>

<h2 id="pass-1-audit-listings-as-products-not-as-a-pile">Pass 1: audit listings as products, not as a pile</h2>

<p>First, I look at the parent listings. This is where I check titles, tags, materials, descriptions, images, personalization settings, inventory, and SKUs at the level shoppers actually encounter the product. Bulk Listing Editor can modify many of those fields, including search-and-replace work in titles and descriptions, so I do not start by selecting everything that contains a keyword.</p>

<p>Instead, I search, then select only the listings that match my note. I keep a short “do not touch” list beside the batch: seasonal items, bundles, listings with custom production rules, and anything that uses a deliberately different naming scheme. This is the Etsy version of the reversible-task habit I used when I <a href="https://the-lean-ecommerce.com/blog/i-split-a-shopify-catalog-cleanup-into-three-reversible-bulk-tasks-Psm7+daKgaqBtsyq0Ny8Sw">split a catalog cleanup into three bulk tasks</a>.</p>

<p>The useful question is not “Can this field be edited in bulk?” It is “Would a shopper notice if this one listing changed differently?” If yes, it earns its own batch—or stays manual.</p>

<h2 id="pass-2-audit-the-variations-as-promises">Pass 2: audit the variations as promises</h2>

<p>Then I switch mental modes. A listing might be fine while one variation is not. Size, color, finish, or pack count is a promise made at selection time, so I check the structure before I alter prices or inventory.</p>

<p>My quick variation audit looks like this:</p>

<ol>
  <li>Are the option names consistent across the selected listings?</li>
  <li>Does each option still describe a real purchasable choice?</li>
  <li>Which variants have different pricing, SKU, or stock logic?</li>
  <li>Is a personalized or made-to-order choice hiding inside the same set?</li>
  <li>Would removing, renaming, or adding an option change the shopper’s expected path?</li>
</ol>

<p><img src="/assets/img/posts/2026-10-07-i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/image-02-1a0b92126698.webp" alt="Small-scope test before a bulk listing edit" /></p>

<p>This pass catches the problem that a product-level spreadsheet view can blur: two listings can look alike yet use their variation values for different operations. The point is not to make every listing identical. The point is to know which differences are intentional before using the app’s Variation mode.</p>

<h2 id="pass-3-turn-the-audit-into-one-reversible-change">Pass 3: turn the audit into one reversible change</h2>

<p>Now I turn the note into a single operation. Bulk Listing Editor’s flow—search the target, choose the exact listings or variations, then specify the modification—supports this nicely. But I deliberately choose <strong>one field family per batch</strong>: prices <em>or</em> tags <em>or</em> variation names <em>or</em> inventory.</p>

<p>For a price adjustment, I select a small representative sample first: one simple listing, one with multiple variations, and one edge case I know well. For tags, I verify that the old tag is actually present before I add or remove it. For variation work, I check every affected option value after the test. The preflight stays simple: scope first, operation second, schedule third.</p>

<p>I also leave myself a rollback note: the old value, the new value, the selected count, and the time I ran it. It takes under a minute and makes the next check much less theatrical.</p>

<h2 id="my-five-minute-post-edit-review">My five-minute post-edit review</h2>

<p>I do not trust a completed job merely because the edit dialog succeeded. I reopen the sample listings in Etsy and check the exact surfaces a buyer will use:</p>

<ul>
  <li>title and thumbnail at the listing level;</li>
  <li>each changed variation label;</li>
  <li>price and inventory per affected option;</li>
  <li>SKU or personalization behavior when relevant; and</li>
  <li>whether excluded listings stayed untouched.</li>
</ul>

<p><img src="/assets/img/posts/2026-10-07-i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/image-03-3675d18255aa.webp" alt="Reviewing changed Etsy listing variations" /></p>

<p>For image work, I look at the actual ordering rather than assuming an upload equals a good product page. That same habit carries across merchandising projects: when I <a href="https://the-lean-ecommerce.gitlab.io/2026/10/06/how-i-plan-shopify-3d-capture-for-products-that-need-it/">planned a Shopify 3D capture</a>, the job only made sense once I could name the shopper question the media had to answer. Catalog edits deserve the same care.</p>

<h2 id="the-batch-is-small-on-purpose">The batch is small on purpose</h2>

<p>The attractive thing about bulk editing is speed. The durable thing is confidence. A clean audit lets me use bulk speed without pretending that every Etsy listing is interchangeable.</p>

<p>If you have a change waiting in your shop, pick one field family and three representative listings today. Run the audit, test the smallest batch in <a href="https://bulk-listing-editor.webyze.com/">Bulk Listing Editor</a>, and only then widen the selection. That little pause is usually cheaper than fixing a very efficient mistake.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="etsy" /><category term="catalog-management" /><category term="bulk-editing" /><category term="ecommerce-operations" /><summary type="html"><![CDATA[A practical three-pass audit for safer Etsy bulk edits to listing variations, tags, prices, and inventory.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-07-i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/cover-0e01bd71d8d8.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-07-i-ran-a-variation-audit-before-editing-my-etsy-listings-in-bulk/cover-0e01bd71d8d8.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Kept a Webflow Staging Copy Before the Redesign Started</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/07/i-kept-a-webflow-staging-copy-before-the-redesign-started/" rel="alternate" type="text/html" title="I Kept a Webflow Staging Copy Before the Redesign Started" /><published>2026-10-07T12:36:03+00:00</published><updated>2026-10-07T12:36:03+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/07/i-kept-a-webflow-staging-copy-before-the-redesign-started</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/07/i-kept-a-webflow-staging-copy-before-the-redesign-started/"><![CDATA[<p>I had a familiar pre-redesign worry on my desk: the Webflow site was still earning its keep, while the next version was about to change navigation, copy, CMS templates, and a few campaign pages all at once. A Webflow backup is helpful, but what I wanted was more specific: a working, portable staging copy I could open somewhere else if the launch got weird.</p>

<p>That changed the job from ‘save the old site’ to ‘prove I can run a static copy of the old site.’ Here is the notebook version of the workflow that held up.</p>

<h2 id="the-copy-i-wanted-was-not-just-an-export-file">The copy I wanted was not just an export file</h2>

<p>For a marketing site with CMS-driven pages, a useful fallback needs to be browsable. It should include the public pages, CSS, JavaScript, images, fonts, and the CMS routes people can still reach from search or old campaign links. A file that only captures text is not much help when the original layout, media, or route structure is the thing a stakeholder needs to review.</p>

<p>That is why I start with a lightweight inventory. I write down the homepage, key collection pages, three or four high-value CMS items, a form page, and any paid-traffic landing pages. If the site has a fragile corner, it makes the list: a filter, a scripted section, an animation, a gated resource, or an old redirect. The point is not a perfect audit. It is a short list I can test later.</p>

<p>For teams with a big CMS, <a href="https://how-to.the-lean-ecommerce.com/2026/10/01/how-to-audit-a-webflow-cms-site-before-moving-to-static-hosting/">this Webflow CMS static-hosting audit</a> is a useful companion: it turns the vague ‘did we get the content?’ question into routes, assets, and exceptions.</p>

<h2 id="i-exported-before-i-touched-the-redesign-branch">I exported before I touched the redesign branch</h2>

<p>I used <a href="https://exflow.site/webflow">ExFlow’s Webflow exporter</a> because the job is aimed at published Webflow sites rather than a generic page download. It can collect pages, HTML, CSS, JavaScript, images, media, and CMS pages into static output, then let you download a ZIP or sync the result to Git, S3, or FTP.</p>

<p>My small rule: export the version visitors can see before changing anything consequential. That gives the fallback a clear timestamp and prevents the uncomfortable question, ‘Which half-finished state did we save?’</p>

<p><img src="/assets/img/posts/2026-10-07-i-kept-a-webflow-staging-copy-before-the-redesign-started/image-01-58334c973af0.webp" alt="Hand-drawn checklist for testing a static Webflow export" /></p>

<p>I keep the export step deliberately boring:</p>

<ol>
  <li>Open the public Webflow URL in a clean browser window.</li>
  <li>Run the export from that published URL.</li>
  <li>Save the ZIP with a date and a plain-language label, such as <code class="language-plaintext highlighter-rouge">site-pre-redesign-2026-10-07</code>.</li>
  <li>Put the extracted output in a separate staging location—never on top of the live project folder.</li>
  <li>Record the commit or hosting destination beside the redesign brief.</li>
</ol>

<p>The boring labels matter. A fallback you cannot identify quickly is just another mystery folder.</p>

<h2 id="i-tested-the-visitor-path-not-every-file">I tested the visitor path, not every file</h2>

<p>A static export is not a promise that every original service becomes static. Forms, search, login, third-party widgets, and server-side behavior deserve an explicit check. But I do not begin by opening hundreds of files. I replay the visitor paths that matter.</p>

<p>My first pass is five minutes:</p>

<ul>
  <li>Desktop and phone homepage: layout, navigation, images, and loading behavior.</li>
  <li>A representative CMS route: URL shape, hero media, related links, and metadata.</li>
  <li>One campaign landing page: buttons, tracking snippets, and internal links.</li>
  <li>A form or interactive area: document whether it still works, needs a replacement, or should be a static notice.</li>
  <li>One old URL: confirm the redirect plan before moving the copy to a new host.</li>
</ul>

<p>This is also where I compare the kind of preservation I need. When I archived a collection rather than a whole site, <a href="https://tools-and-how-tos.github.io/2026/10/05/how-to-archive-a-retired-webflow-cms-collection-as-static-html/">this approach for retaining a retired Webflow CMS collection as static HTML</a> made the scope much clearer. A fallback does not need to be huge; it needs to cover the decision you are protecting.</p>

<h2 id="i-separated-safe-reference-from-ready-fallback">I separated ‘safe reference’ from ‘ready fallback’</h2>

<p><img src="/assets/img/posts/2026-10-07-i-kept-a-webflow-staging-copy-before-the-redesign-started/image-02-568b87387399.webp" alt="Notebook-style illustration of preserving a website before redesign" /></p>

<p>The ZIP is the safe reference. A deployed copy is the ready fallback. I keep both.</p>

<p>The ZIP protects the original export artifacts. The deployed version tells me whether the site can actually live outside its original platform. If I only have the ZIP, I still need to unpack, configure, and test it during an incident. If I have a small static deployment, I can point a temporary subdomain at it, share it with a client, or use it to compare a broken redesign against what customers were seeing yesterday.</p>

<p>For small teams, a Git repository is a satisfying middle ground: every exported version gets a commit, review notes live next to the files, and the output can feed a static host. For a simpler setup, ExFlow can also deploy or sync to Git, S3, FTP, or its own hosting path. Pick the destination your team will remember how to use at 4 p.m. on launch day.</p>

<h2 id="my-staging-copy-checklist-before-the-redesign-moves">My staging-copy checklist before the redesign moves</h2>

<p>Here is the one-page version from my notebook:</p>

<ul>
  <li><strong>Scope:</strong> I know which pages and CMS routes the copy must preserve.</li>
  <li><strong>Source:</strong> The export came from the published URL, not an unpublished experiment.</li>
  <li><strong>Assets:</strong> Images, fonts, CSS, JavaScript, and media load from the staged copy.</li>
  <li><strong>Behavior:</strong> I have noted which forms, embeds, and scripts need a replacement or do not belong in the fallback.</li>
  <li><strong>Routes:</strong> Important internal links work and I have a redirect plan for old URLs.</li>
  <li><strong>Ownership:</strong> Someone knows where the ZIP, repository, and hosting settings live.</li>
</ul>

<p><img src="/assets/img/posts/2026-10-07-i-kept-a-webflow-staging-copy-before-the-redesign-started/image-03-f9116b15475e.webp" alt="Hand-drawn map of static hosting deployment options" /></p>

<p>That ownership line is easy to skip. It is also the difference between a backup that reassures one person and a fallback the whole team can use.</p>

<h2 id="the-useful-part-of-a-staging-copy-is-the-rehearsal">The useful part of a staging copy is the rehearsal</h2>

<p>The payoff was not merely avoiding platform lock-in. The exercise exposed a couple of vague requirements before they became production bugs: which CMS pages needed to remain indexable, which form had a real business owner, and which old URLs were still carrying paid traffic. The recovery rehearsal in <a href="https://herramientas-y-tutoriales.github.io/2026/10/07/como-ensayar-la-recuperacion-de-tu-sitio-squarespace-antes-de-redisena/">this Squarespace field note</a> follows the same useful rule: test the recovery path before the pressure arrives.</p>

<p>The same thinking works when you are preserving a different builder. ExFlow has dedicated <a href="https://exflow.site/squarespace">Squarespace</a> and <a href="https://exflow.site/framer">Framer</a> exporters too, though I would keep the test plan platform-specific—animations and responsive details deserve special attention in Framer, for example. If that is your next handoff, <a href="https://outils-et-tutoriels.github.io/2026/10/07/comment-preparer-une-remise-framer-sans-dependre-de-l-hebergement/">this Framer client-handoff guide</a> is worth reading alongside the export.</p>

<p>My next action is simple: before the redesign team changes the next Webflow collection template, I will export the published site, deploy the copy somewhere boring, and ask one teammate to click the five routes I would hate to lose. That is enough rehearsal to make a redesign feel a lot less like a leap.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="webflow" /><category term="static-hosting" /><category term="website-backup" /><category term="ecommerce-operations" /><summary type="html"><![CDATA[A practical field note on exporting a Webflow site to static files before a redesign, then testing and hosting the fallback copy.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-07-i-kept-a-webflow-staging-copy-before-the-redesign-started/cover-bebe800e0c46.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-07-i-kept-a-webflow-staging-copy-before-the-redesign-started/cover-bebe800e0c46.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">How I Plan Shopify 3D Capture for Products That Need It</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/06/how-i-plan-shopify-3d-capture-for-products-that-need-it/" rel="alternate" type="text/html" title="How I Plan Shopify 3D Capture for Products That Need It" /><published>2026-10-06T12:35:05+00:00</published><updated>2026-10-06T12:35:05+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/06/how-i-plan-shopify-3d-capture-for-products-that-need-it</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/06/how-i-plan-shopify-3d-capture-for-products-that-need-it/"><![CDATA[<p>I used to treat 3D product media as a giant catalog project: pick a tool, photograph everything, then hope the models make the store feel more premium. That is an expensive way to learn which products actually need a closer look.</p>

<p>Now I make a one-page capture plan first. It tells me which SKU deserves the effort, what a shopper still cannot understand from photos, and whether the model has a sensible home on the product page. The goal is not ‘3D everywhere.’ The goal is fewer product-page question marks.</p>

<p><a href="https://supra-3d-capture.sktch.io/">Supra 3D Capture</a> makes this lightweight: I can take a guided set of phone photos, let the app process them into a web-ready GLB, then publish it as Shopify product media or use its Online Store 2.0 app block.</p>

<p><img src="/assets/img/posts/2026-10-06-how-i-plan-shopify-3d-capture-for-products-that-need-it/image-01-6707a65ee091.webp" alt="Hand-drawn three-step workflow from phone photos to a Shopify 3D product model" /></p>

<h2 id="my-four-line-capture-plan">My four-line capture plan</h2>

<p>Before I pick up a phone, I add four small notes beside the SKU:</p>

<ol>
  <li><strong>What photos fail to show.</strong> Is it the depth of a bag, the curve of a lamp, the texture of a ceramic finish, or the real proportions of a bundled product? If a normal gallery already settles the question, I leave it alone.</li>
  <li><strong>The shopper question.</strong> I write it in plain language: ‘How thick is it?’ ‘What does the back look like?’ ‘Will this sit flat on my shelf?’ This stops the capture from becoming a decorative experiment.</li>
  <li><strong>The capture risk.</strong> Shiny, transparent, fuzzy, and very thin items need more patience. I flag them before they derail a quick session.</li>
  <li><strong>Where it will appear.</strong> Native Shopify 3D product media is my default. I use an app block when a model needs a more intentional position in the page.</li>
</ol>

<p>That last line matters. A good 3D model buried under vague product copy is still a missed opportunity.</p>

<h2 id="pick-the-products-with-a-visible-confidence-gap">Pick the products with a visible confidence gap</h2>

<p>My first candidates are products customers want to inspect from more than one angle: distinctive silhouettes, texture-led objects, products with a meaningful front/back difference, and items where scale changes the buying decision. Think handbags, furniture accents, footwear, giftable objects, or a compact appliance with controls on the side.</p>

<p>I do not start with every SKU in a collection. I start with the product that gets ‘can I see another angle?’ questions, earns a lot of photo zooming, or regularly creates a gap between what a buyer imagined and what arrived. That is where interactive rotation can add useful context.</p>

<p><img src="/assets/img/posts/2026-10-06-how-i-plan-shopify-3d-capture-for-products-that-need-it/image-02-d03d5b5c7cdb.webp" alt="Hand-drawn Shopify product triage for deciding which items to capture in 3D" /></p>

<p>I also keep the scan itself realistic. A regular smartphone, an evenly lit product, and a deliberate orbit are a better beginning than buying gear too early. For the phone-to-Shopify mechanics, I keep <a href="https://how-to.the-lean-ecommerce.com/2026/10/02/how-to-publish-a-phone-captured-3d-model-to-shopify/">this publishing walkthrough</a> close by. And if I am tempted to start without deciding the purpose, I return to <a href="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-write-a-3d-capture-brief-before-i-pick-up-my-phone/">my 3D capture brief</a>.</p>

<h2 id="capture-for-the-rotation-not-for-a-pretty-hero-shot">Capture for the rotation, not for a pretty hero shot</h2>

<p>The photo set is a working orbit, not a mini campaign shoot. I put the product in consistent, diffuse light, keep the backdrop simple, and walk around it at a steady distance. I want enough overlap for photogrammetry to understand the shape, especially around handles, corners, and surface changes.</p>

<p>Supra guides the phone capture and processes the photos into a polished GLB. That is useful because I do not need to become a 3D modeler before testing whether 3D media earns a place in the catalog. The Free plan is enough to trial the workflow on a small number of models; the paid plans give a growing catalog more room.</p>

<p>One field note: do not make a high-stakes launch SKU the first scan. Use a product you know well, where a small imperfection will not hold up a release. You are learning the capture rhythm and your theme’s 3D behavior at the same time.</p>

<h2 id="run-a-product-page-confidence-check">Run a product-page confidence check</h2>

<p>Once the model is live, I open the page like a skeptical customer. I rotate the product and ask whether the interaction answers the question I wrote at the top of the brief. Can I understand its outline? Its depth? Its surface? Does its scale make more sense beside the existing photos and copy?</p>

<p><img src="/assets/img/posts/2026-10-06-how-i-plan-shopify-3d-capture-for-products-that-need-it/image-03-c62f42e8c8e7.webp" alt="Hand-drawn product-page confidence check centered on an interactive 3D model" /></p>

<p>If the answer is no, I do not assume 3D is the fix. The product may need a better size reference, a clearer material close-up, or more honest product copy. I like this filter because it keeps 3D product media in service of customer confidence, rather than treating it like a novelty widget.</p>

<p>For a complementary way to choose the first candidates, there is also a useful <a href="https://outils-et-tutoriels.gitlab.io/guides/2026/10/03/quels-produits-shopify-modeliser-en-3d-en-premier/">SKU-priority checklist</a> from the same working notebook.</p>

<h2 id="make-the-next-action-small">Make the next action small</h2>

<p>Choose one product whose shape, texture, or proportions are hard to explain in flat images. Write the four-line plan, capture one phone orbit, and publish it to a test product in Shopify. <a href="https://apps.shopify.com/supra-3d-capture">Install Supra 3D Capture</a> when you are ready to turn that small experiment into a repeatable product-page upgrade.</p>

<p>The win is not a fully 3D store by Friday. It is one less reason for a shopper to guess.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="3d-product-models" /><category term="product-pages" /><category term="ecommerce" /><summary type="html"><![CDATA[A practical field-note workflow for choosing Shopify products, planning a phone capture, and publishing interactive 3D media without overbuilding it.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-06-how-i-plan-shopify-3d-capture-for-products-that-need-it/cover-3b9ac3139633.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-06-how-i-plan-shopify-3d-capture-for-products-that-need-it/cover-3b9ac3139633.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Review VideoJSON Before It Reaches the Render Queue</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-review-videojson-before-it-reaches-the-render-queue/" rel="alternate" type="text/html" title="I Review VideoJSON Before It Reaches the Render Queue" /><published>2026-10-05T16:38:49+00:00</published><updated>2026-10-05T16:38:49+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/05/i-review-videojson-before-it-reaches-the-render-queue</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-review-videojson-before-it-reaches-the-render-queue/"><![CDATA[<p>I learned this the expensive way: an AI can produce a plausible video plan much faster than I can decide whether that plan deserves a render. If my job runner turns every generated draft into an MP4, I get a queue full of almost-right clips, mystery costs, and feedback that arrives after the useful editing moment.</p>

<p>My fix is simple: the render queue only accepts an approved VideoJSON document. The agent may draft it, but the document has to survive a small review gate first. <a href="https://videoflow.dev/">VideoFlow</a> is useful here because its portable JSON can drive a live preview, an editable React timeline, and a renderer without translating the project between each checkpoint.</p>

<p><img src="/assets/img/posts/2026-10-05-i-review-videojson-before-it-reaches-the-render-queue/image-01-e53864f7d948.webp" alt="Human review gate for AI-generated VideoJSON" /></p>

<h2 id="the-queue-is-not-the-first-step">The Queue Is Not the First Step</h2>

<p>I now treat the queue as delivery, not discovery. The useful sequence is:</p>

<ol>
  <li>Gather a bounded input packet: product title, approved images, a claim list, locale, CTA, and duration limit.</li>
  <li>Ask the model for structured VideoJSON or a TypeScript draft that compiles to it.</li>
  <li>Validate the document mechanically.</li>
  <li>Preview and inspect it with a person who understands the campaign.</li>
  <li>Save the approved revision, then hand <em>that revision</em> to the render worker.</li>
</ol>

<p>That order matters. A text prompt alone is a weak audit trail. A JSON document gives me a durable thing to diff, store beside the campaign, reopen in an editor, and render again later. It is the same logic behind the catalog-to-video setup I used when <a href="https://the-lean-ecommerce.gitlab.io/2026/09/22/i-built-a-catalog-to-video-api-around-one-portable-json-document/">I built a product-video API around one portable JSON document</a>, except the approval boundary is explicit instead of implied.</p>

<h2 id="first-gate-make-the-agents-output-boringly-valid">First Gate: Make the Agent’s Output Boringly Valid</h2>

<p>Before anyone watches a preview, my service checks the basics: schema shape, permitted layer types, asset URLs from an allowlist, a maximum duration, required alt/caption fields, and a CTA that belongs to the campaign. I also reject missing media rather than letting the renderer improvise a blank scene.</p>

<p>That is where a JSON-first format earns its keep. An agent does not need direct access to a timeline editor or a production rendering credential. It produces a constrained document; the application validates it; a reviewer sees the result. VideoFlow’s <a href="https://videoflow.dev/core">Core</a> can author layers and compile them into portable VideoJSON, so the draft can remain a reviewable artifact even when it began as TypeScript.</p>

<p>My minimum validation object looks more like a release checklist than an AI safety lecture:</p>

<div class="language-ts highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">checks</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">durationUnderSeconds</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
  <span class="na">assetsFromApprovedHosts</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
  <span class="na">captionsPresent</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
  <span class="na">ctaMatchesCampaign</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
  <span class="na">noUnresolvedTemplateTokens</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="p">};</span>
</code></pre></div></div>

<p>The exact implementation will differ, but the principle does not: block the avoidable failure before rendering makes it look official. This is the engineering counterpart to the input review I used when <a href="https://the-lean-ecommerce.gitlab.io/2026/09/15/i-started-reviewing-product-video-inputs-before-the-first-render/">I started reviewing product-video inputs before the first render</a>.</p>

<p><img src="/assets/img/posts/2026-10-05-i-review-videojson-before-it-reaches-the-render-queue/image-02-6f57cbb2f911.webp" alt="One VideoJSON document powering preview editing and rendering" /></p>

<h2 id="second-gate-review-the-moving-thing-not-just-its-json">Second Gate: Review the Moving Thing, Not Just Its JSON</h2>

<p>Valid JSON can still make a bad video. A product image can crop badly; a caption can arrive too late; a first frame can read like a placeholder. So the next checkpoint is a real preview.</p>

<p>This is one of the nicer properties of VideoFlow’s renderer split. The same document can mount in the DOM for a scrub-able preview, open in the <a href="https://videoflow.dev/react-video-editor">React Video Editor</a> for a timeline adjustment, or later go to a server renderer. I do not need one format for the model, another for review, and a third for export.</p>

<p>My reviewer gets five questions, not an open-ended request to “check the video”:</p>

<ul>
  <li>Can you understand the offer with sound off?</li>
  <li>Is the first visual the right product, at a useful crop?</li>
  <li>Does each caption match an approved claim?</li>
  <li>Does the CTA arrive early enough to matter?</li>
  <li>Would you ship this exact variant to this audience?</li>
</ul>

<p>That keeps feedback specific. “Trim scene two by half a second” or “replace the comparison image” becomes a revision to a named document rather than a vague ticket attached to an MP4. It is also why I prefer this workflow to treating every variation as a separate creative project, a trap I described in <a href="https://the-lean-ecommerce.github.io/2026/09/14/i-stopped-treating-product-video-variations-as-separate-projects/">I Stopped Treating Product Video Variations as Separate Projects</a>.</p>

<h2 id="third-gate-freeze-the-approved-revision">Third Gate: Freeze the Approved Revision</h2>

<p>Once a reviewer approves a draft, I save the exact VideoJSON with a revision ID and a short decision note. The render request contains that revision ID, not a mutable “latest” template. If the campaign needs another CTA or a French locale, it becomes a new revision.</p>

<p>This tiny rule removes a surprising amount of confusion. It lets support answer “what did we send?” and lets engineering reproduce a render without guessing which data was live that afternoon. For localized batches, the same pattern keeps copy swaps from becoming a separate code path; <a href="https://outils-et-tutoriels.gitlab.io/guides/2026/09/30/automatiser-variantes-video-localisees-videojson/">automating localized variants from a VideoJSON template</a> is much safer when every locale has an inspectable source document.</p>

<p><img src="/assets/img/posts/2026-10-05-i-review-videojson-before-it-reaches-the-render-queue/image-03-0a8f32fe505f.webp" alt="Notebook checklist before an MP4 render queue" /></p>

<h2 id="render-only-when-the-trade-off-is-clear">Render Only When the Trade-Off Is Clear</h2>

<p>For a small user-initiated export, browser rendering can be the lean answer. For a batch, scheduled campaign, or API workflow, server-side rendering is usually the sensible place to queue work. <a href="https://videoflow.dev/renderers">VideoFlow’s renderers</a> support both paths from the same VideoJSON.</p>

<p>The decision is not “which renderer is more advanced?” It is “where should this cost, latency, and privacy boundary live?” A browser export avoids shipping the source project to your infrastructure; a server worker gives you controlled batch processing and predictable delivery. Either way, the approval gate stays upstream.</p>

<h2 id="the-next-useful-step">The Next Useful Step</h2>

<p>If you are building an AI video workflow this week, add one column to your render table: <code class="language-plaintext highlighter-rouge">approved_video_revision_id</code>. Make it required. Then make one real preview before the worker can claim a job.</p>

<p>That is a modest bit of friction, but it creates the kind you want: the agent can still move quickly, while a human gets one clean moment to catch the expensive wrong turn. Start with VideoFlow’s <a href="https://videoflow.dev/examples">examples</a>, wire up the smallest possible validation step, and let your queue render only work somebody chose to ship.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="programmatic-video" /><category term="videojson" /><category term="ai-automation" /><category term="typescript" /><category term="video-rendering" /><summary type="html"><![CDATA[A practical approval gate for AI-generated video: validate VideoJSON, preview the result, and render only approved jobs.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-review-videojson-before-it-reaches-the-render-queue/cover-15c7442eb12c.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-review-videojson-before-it-reaches-the-render-queue/cover-15c7442eb12c.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Write a 3D Capture Brief Before I Pick Up My Phone</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-write-a-3d-capture-brief-before-i-pick-up-my-phone/" rel="alternate" type="text/html" title="I Write a 3D Capture Brief Before I Pick Up My Phone" /><published>2026-10-05T08:34:32+00:00</published><updated>2026-10-05T08:34:32+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/05/i-write-a-3d-capture-brief-before-i-pick-up-my-phone</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-write-a-3d-capture-brief-before-i-pick-up-my-phone/"><![CDATA[<p>A phone is enough to start making 3D product media. That is useful—and also the reason I kept getting ahead of myself. I would choose a product, open a capture session, start walking circles around it, and only then notice the hard reflection, the floppy strap, or the missing detail a shopper actually needs to inspect.</p>

<p>My fix is tiny: before I take the first photo, I write a one-page capture brief. It takes about five minutes. It makes the 10+ guided phone photos in <a href="https://supra-3d-capture.sktch.io/">Supra 3D Capture</a> much more intentional, and it gives me a clean decision point before I ask the app to turn them into a web-ready GLB.</p>

<p><img src="/assets/img/posts/2026-10-05-i-write-a-3d-capture-brief-before-i-pick-up-my-phone/image-01-8381db13bef7.webp" alt="Hand-drawn lighting preflight for a product capture" /></p>

<h2 id="the-brief-starts-with-one-shopper-question">The brief starts with one shopper question</h2>

<p>I do not begin with “which SKU needs 3D?” I begin with: <strong>what will a shopper understand by rotating this object that static photos keep hiding?</strong></p>

<p>For a small lamp, the answer might be its shade depth and base proportions. For a backpack, it might be the side profile, zipper layout, and how far it stands off a body. For a ceramic mug, the handle shape and rim thickness can matter more than another close-up.</p>

<p>That question keeps the exercise product-page-first instead of technology-first. If the answer is only “it would look cool,” I leave the SKU in the photo queue. If the answer is a specific expectation gap, it earns a capture brief. My earlier <a href="https://the-lean-ecommerce.gitlab.io/2026/09/28/i-run-a-3d-media-qa-before-scaling-shopify-product-models/">3D media QA</a> is what I use later to judge the finished result; this note is the small preparation step before the camera comes out.</p>

<h2 id="my-five-line-shopify-3d-capture-brief">My five-line Shopify 3D capture brief</h2>

<p>Here is the literal version in my notebook:</p>

<ol>
  <li><strong>Product and purpose:</strong> Which SKU is this, and what uncertainty should rotation remove?</li>
  <li><strong>Hero surfaces:</strong> Which side, edge, opening, texture, or proportion has to survive the scan?</li>
  <li><strong>Capture risks:</strong> Is it glossy, clear, fuzzy, black-on-black, flexible, or full of moving parts?</li>
  <li><strong>Lighting and stage:</strong> Where will I get even light, a quiet background, and room to orbit?</li>
  <li><strong>Destination:</strong> Will the model belong in Shopify product media, or does this item need a dedicated Online Store 2.0 app block?</li>
</ol>

<p>That last line matters more than it looks. It forces me to picture the customer’s interaction before I collect inputs. <a href="https://apps.shopify.com/supra-3d-capture">Supra 3D Capture’s Shopify workflow</a> is built around guided phone capture, cloud processing, and publishing a GLB into Shopify. A capture brief simply ensures I am making the right model for that destination.</p>

<p><img src="/assets/img/posts/2026-10-05-i-write-a-3d-capture-brief-before-i-pick-up-my-phone/image-02-ff009f06ee89.webp" alt="Hand-drawn 3D capture brief around product details" /></p>

<h2 id="stage-the-product-not-a-studio">Stage the product, not a studio</h2>

<p>The point is not to manufacture a perfect photo studio. It is to remove variables that confuse the capture. I use a stable surface, keep the product in one pose, clear visual clutter, and choose soft, even light before I begin. Then I walk a deliberate orbit instead of chasing “interesting” angles.</p>

<p>For ordinary matte goods, that can be pleasantly low-tech: a phone, a clear walking path, and enough space to keep the product consistently in frame. The app guides the session, but it cannot make a highly reflective metal surface stop mirroring the room or make a soft bag hold a different shape in every shot. Those are brief-level warnings, not failures to discover after processing.</p>

<p>If I have never done one before, I pair this with the practical mechanics in <a href="https://how-to.the-lean-ecommerce.com/2026/08/26/how-to-capture-your-first-shopify-3d-model-with-a-phone/">this phone-first Shopify 3D model guide</a>. The difference is that I decide <em>what good must show</em> before I decide how many steps the orbit needs.</p>

<h2 id="capture-the-proof-then-look-for-gaps">Capture the proof, then look for gaps</h2>

<p>Once the scene is ready, I take the guided 10+ photos with a single goal: every meaningful surface should appear in more than one usable view. I keep my distance and height consistent, then let the subject—not my enthusiasm—set the pace.</p>

<p>Before I upload, I quickly inspect a few representative frames:</p>

<ul>
  <li>Is the silhouette clean against the background?</li>
  <li>Can I see the defining feature from at least two neighboring positions?</li>
  <li>Did a reflection, shadow, or hand enter a critical area?</li>
  <li>Did the object shift, sag, or rotate on its own?</li>
</ul>

<p>This is where the brief pays rent. Rather than vaguely wondering whether the set “looks okay,” I compare the frames with my hero surfaces and capture risks. A missing zipper pull or an unreadable textured side is a reason to reshoot now—not a reason to publish a model that creates a new question.</p>

<h2 id="treat-the-glb-as-product-page-media-not-a-trophy">Treat the GLB as product-page media, not a trophy</h2>

<p>After Supra 3D Capture processes the photos into a GLB, I publish it to the product’s native Shopify 3D media or use the dedicated app block where that presentation better fits the page. Then I test it on the live-like product page, ideally on a phone as well as desktop.</p>

<p>The important check is simple: can a shopper drag, rotate, and inspect the exact product detail named in the brief? If not, I do not fixate on the novelty of the model. I go back to the capture note. The clean publishing sequence is covered in <a href="https://how-to.the-lean-ecommerce.com/2026/10/02/how-to-publish-a-phone-captured-3d-model-to-shopify/">this guide to adding a phone-captured 3D model to Shopify</a>; the brief gives that sequence a conversion-aware reason to exist.</p>

<p><img src="/assets/img/posts/2026-10-05-i-write-a-3d-capture-brief-before-i-pick-up-my-phone/image-03-2a621cff7f12.webp" alt="Hand-drawn path from phone photos to an interactive product model" /></p>

<h2 id="keep-the-first-brief-deliberately-boring">Keep the first brief deliberately boring</h2>

<p>My best first 3D capture is rarely the most spectacular SKU. I choose one with a stable shape, readable surfaces, and a concrete customer question. That gives me a useful baseline before I attempt shiny hardware, transparent packaging, or flexible apparel. If you are deciding where to start, <a href="https://the-lean-ecommerce.github.io/2026/09/24/how-i-test-one-shopify-3d-model-before-scaling-product-media/">my one-model scaling test</a> is a good companion: prove the workflow with one honest model before you create a backlog.</p>

<p>The small win here is not “we have 3D now.” It is that the 3D model helps a customer judge shape, scale, texture, or construction with less guesswork. That is product-page confidence, not decoration.</p>

<h2 id="your-next-move">Your next move</h2>

<p>Pick one SKU today and write the five lines before taking a single photo. Then start a guided session in <a href="https://supra-3d-capture.sktch.io/">Supra 3D Capture</a> with an even-lit, stable product and one customer question in mind. The resulting model will have a much better chance of earning its place on the page.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="3d-product-media" /><category term="photogrammetry" /><category term="ecommerce-operations" /><summary type="html"><![CDATA[A practical first-SKU capture brief for turning phone photos into a Shopify-ready 3D product model.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-write-a-3d-capture-brief-before-i-pick-up-my-phone/cover-c042b0f2529e.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-write-a-3d-capture-brief-before-i-pick-up-my-phone/cover-c042b0f2529e.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Sketched a Bulk Price Change Before Touching My Shopify Catalog</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/" rel="alternate" type="text/html" title="I Sketched a Bulk Price Change Before Touching My Shopify Catalog" /><published>2026-10-05T02:33:42+00:00</published><updated>2026-10-05T02:33:42+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/05/i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/05/i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/"><![CDATA[<p>I nearly did the familiar thing: open the catalog, filter every summer product, knock 15% off, and call it a launch task. The problem with that move is not the math. It is that a bulk price change can quietly touch the wrong variants, collide with an existing compare-at price, or go live while the rest of the team is still checking the campaign.</p>

<p>So I sketched the job first. Not a grand system—just a small card for what I wanted to change, what must stay put, and how I would know it worked. Then I used <a href="https://apps.shopify.com/ultimate-bulk-editor">Ultimator Bulk Editor</a> to turn that sketch into a bounded bulk task instead of a catalog-wide leap of faith.</p>

<p><img src="/assets/img/posts/2026-10-05-i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/image-01-9bfb638b9bc4.webp" alt="Hand-drawn product selection and preview workflow" /></p>

<h2 id="the-three-cards-on-my-desk">The three cards on my desk</h2>

<p>My starting point is three deliberately boring cards:</p>

<ol>
  <li><strong>Selection:</strong> which products and variants belong in this change?</li>
  <li><strong>Operation:</strong> what exact field changes, and by what rule?</li>
  <li><strong>Exit check:</strong> what would make me stop before running it?</li>
</ol>

<p>That separation matters. If I cannot describe the selection without saying “the ones we mean,” it is not ready. I write down the collection, tags, status, vendor, or variant condition that makes an item eligible. I also write down exclusions: gift cards, bundles, low-stock variants, or anything already in another promotion.</p>

<p>For the operation, I keep the language equally plain: decrease price by a percentage, round cents, or set a known value. Ultimator Bulk Editor supports bulk product and variant edits, including price and compare-at price, so it fits the task when the intended rule is already clear. Its workflow is essentially the one I want on paper: choose the items, define the update, then run it now or schedule it.</p>

<p>The exit check is where the sketch earns its keep. Mine usually says: “If the sample includes a product outside the sale collection, stop.” Another common one: “If a variant already has a lower sale price, stop.” A tiny stop condition prevents a very large cleanup later.</p>

<h2 id="i-make-the-first-pass-intentionally-small">I make the first pass intentionally small</h2>

<p>I do not begin with the whole catalog. I make a narrow selection I can inspect like a human: perhaps one collection, one vendor, or a tag created for the campaign. Then I check a handful of both products and variants.</p>

<p>This is the same habit that helped me when I <a href="https://the-lean-ecommerce.com/blog/i-split-a-shopify-catalog-cleanup-into-three-reversible-bulk-tasks-Psm7+daKgaqBtsyq0Ny8Sw">split a Shopify catalog cleanup into three reversible bulk tasks</a>. A cleanup becomes safer when each batch has one purpose and one obvious success condition. Pricing work deserves the same restraint.</p>

<p>For a percentage discount, I ask three questions before I proceed:</p>

<ul>
  <li>Does every selected item have a price I expect to change?</li>
  <li>Are there variants whose prices should remain independent?</li>
  <li>Do I need a consistent rounding rule so the storefront does not look accidental?</li>
</ul>

<p>If any answer is fuzzy, I create another filter or another task. The extra task is cheaper than explaining why one premium variant got discounted with the basics.</p>

<p><img src="/assets/img/posts/2026-10-05-i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/image-02-9ab13f6d8ad3.webp" alt="Hand-drawn reversible catalog update checklist" /></p>

<h2 id="preview-the-result-not-just-the-rule">Preview the result, not just the rule</h2>

<p>A rule can sound correct and still create awkward output. “Decrease 15%” is not an outcome; it is an instruction. I want to see whether the resulting prices look right across low, middle, and high price points—and whether cents need rounding.</p>

<p>My mini sample is usually five to ten items: a simple product, a product with variants, a high-price item, a low-price item, and one that ought to be excluded. I compare the expected before-and-after values in a note. It is a manual step, but only for a few rows, and it catches misunderstandings early.</p>

<p>This is especially important if your store has accumulated campaigns over time. The operational pattern is familiar from <a href="https://tools-and-how-tos.github.io/2026/10/02/how-to-retire-shopify-products-in-bulk-without-hiding-the-wrong-items/">retiring Shopify products in bulk without hiding the wrong items</a>: the safe work is less about clicking faster and more about proving the filter means what you think it means.</p>

<h2 id="decide-whether-now-is-actually-now">Decide whether “now” is actually now</h2>

<p>Once the selection and result both look sound, I choose the run time. An instant update is fine for a contained correction. A scheduled update is better when the price change belongs to a campaign, an email, a collection refresh, or a team handoff. Ultimator Bulk Editor can run tasks immediately or schedule them, which is useful because it keeps the execution step attached to the same defined task.</p>

<p>Before scheduling, I add one final operational note: who checks the storefront after it runs? That person might be me, but it needs to be explicit. I open one product with variants, one collection page, and one product that should not have changed. If the campaign uses product-page content or merchandising rules, I also check that the price change has not made the page’s message misleading. My <a href="https://the-lean-ecommerce.github.io/2026/10/04/i-built-one-shopify-product-content-system-for-three-catalogs/">one-content-system-for-three-catalogs field note</a> is a useful reminder that catalog data and the surrounding content system are one operating surface.</p>

<p><img src="/assets/img/posts/2026-10-05-i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/image-03-1d458b0dee48.webp" alt="Hand-drawn scheduled Shopify catalog update" /></p>

<h2 id="my-one-page-bulk-change-checklist">My one-page bulk-change checklist</h2>

<p>Here is the version I keep next to the task:</p>

<ul>
  <li>Name the campaign and the intended live window.</li>
  <li>Define the selection with store data, not memory.</li>
  <li>State the exact price or compare-at-price operation.</li>
  <li>Inspect a mixed sample, including one intentional exclusion.</li>
  <li>Choose a rounding rule where needed.</li>
  <li>Run immediately only for a contained correction; otherwise schedule it.</li>
  <li>Check representative product pages and collection pages after it completes.</li>
</ul>

<p>That is also why I would use a bulk editor rather than ad hoc spreadsheets for a live catalog change: the task keeps the selection, operation, and timing in one place. If you are still building the habit, start with one narrowly scoped update in <a href="https://apps.shopify.com/ultimate-bulk-editor">Ultimator Bulk Editor</a>, document the sample you reviewed, and keep the next campaign small enough to verify.</p>

<p>Bulk editing is not about bravely changing thousands of rows. It is about making a change so clear that you can explain what happened, spot a surprise quickly, and run the next one with less drama. Today’s next step: sketch the three cards for your next catalog update before you open the bulk tool.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="catalog-management" /><category term="bulk-editing" /><category term="ecommerce-operations" /><summary type="html"><![CDATA[A practical field-note workflow for planning, previewing, and scheduling safe Shopify bulk price changes.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/cover-55be504785e0.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-05-i-sketched-a-bulk-price-change-before-touching-my-shopify-catalog/cover-55be504785e0.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Run a 30-Minute Shopify Blog Triage Before I Automate Anything</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/04/i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/" rel="alternate" type="text/html" title="I Run a 30-Minute Shopify Blog Triage Before I Automate Anything" /><published>2026-10-04T22:31:41+00:00</published><updated>2026-10-04T22:31:41+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/04/i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/04/i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/"><![CDATA[<p>I used to treat blog automation as the fix for an empty content calendar. It is not. The actual fix was a tiny triage ritual before the calendar: 30 minutes with the handful of store signals that already have a reason to exist.</p>

<p>That sounds almost too small to matter, but it stopped me from asking an AI writer to invent a month of vague ‘tips’ for a Shopify store. Instead, I hand it a short list of customer problems, current products, and timely store changes—then I decide what becomes a draft, what needs a human answer, and what should wait.</p>

<p>That is the input I now give <a href="https://supra-blog-automation.sktch.io/">Supra Blog Automation</a>. The app can generate, optimize, illustrate, and schedule Shopify SEO blog posts, but a useful queue starts before the generate button.</p>

<p><img src="/assets/img/posts/2026-10-04-i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/image-01-1625498dcc0e.webp" alt="Hand-drawn source-to-topic filter for ecommerce blog ideas" /></p>

<h2 id="the-eight-title-sketch-i-made-first">The eight-title sketch I made first</h2>

<p>Before choosing the final angle, I sketched exactly eight search-shaped directions:</p>

<ol>
  <li>I Run a 30-Minute Shopify Blog Triage Before I Automate Anything</li>
  <li>How I Pick Shopify Blog Topics From Real Customer Questions</li>
  <li>The Product-Update Filter I Use Before Scheduling Shopify Content</li>
  <li>How to Build a Shopify Blog Queue From Store Signals</li>
  <li>A Small Shopify Content Triage for Busy Store Owners</li>
  <li>Which Shopify Blog Ideas Deserve Automation First?</li>
  <li>How I Stop Ecommerce Blog Automation From Inventing Topics</li>
  <li>The 30-Minute Content Review That Makes Shopify Blog Posts More Useful</li>
</ol>

<p>I picked the first because it captures the awkward truth: automation is downstream of editorial judgment. It is a clear fit for the operator who wants recurring publishing without a content machine that outpaces their knowledge of the store.</p>

<h2 id="my-three-pile-rule">My three-pile rule</h2>

<p>I open a notebook page and make three ugly piles. No spreadsheet architecture yet. No keyword universe. Just evidence.</p>

<h3 id="1-questions-people-already-ask">1. Questions people already ask</h3>

<p>Support tickets, chat transcripts, product reviews, and the repeated questions a team hears before checkout are the first pile. I do not turn every question into a post. I mark the questions where a longer answer would reduce buyer uncertainty, help someone choose between products, or explain a use case that a product page cannot carry alone.</p>

<p>This is related to the habit behind <a href="https://the-lean-ecommerce.github.io/2026/09/01/how-i-turn-a-shopify-collection-brief-into-a-reviewable-blog-queue/">turning a Shopify collection brief into a reviewable blog queue</a>, but the source can be smaller and messier. One recurring question is enough to earn a draft if it points to a real decision.</p>

<h3 id="2-changes-inside-the-store">2. Changes inside the store</h3>

<p>The second pile is releases: a new collection, restock, seasonal bundle, material change, shipping cutoff, or an updated buying guide. These have a freshness advantage, but I ask one blunt question: <em>does this change help a shopper solve something?</em></p>

<p>A new colorway alone may only deserve an announcement. A new fit family, giftable bundle, or collection with a different buying decision can support a useful guide. I keep the product context attached so the eventual post can link to the right collection rather than waving vaguely at the catalog.</p>

<h3 id="3-planned-campaigns-with-real-constraints">3. Planned campaigns with real constraints</h3>

<p>The last pile is what is coming: seasonal pushes, launches, promotions, and inventory moments. This is where a schedule becomes useful, especially when it is not pretending that every date needs a post. I have used the same restraint when <a href="https://the-lean-ecommerce.gitlab.io/2026/09/09/i-built-a-shopify-blog-calendar-with-an-approval-lane/">building a Shopify blog calendar with an approval lane</a>: a publishing rhythm should make room for review, not eliminate it.</p>

<p><img src="/assets/img/posts/2026-10-04-i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/image-02-c53348773731.webp" alt="Hand-drawn draft review ritual with product context" /></p>

<h2 id="the-five-minute-scorecard">The five-minute scorecard</h2>

<p>For each candidate, I score five things from zero to two in the margin:</p>

<ul>
  <li><strong>Customer usefulness:</strong> would this answer a real question or help a real choice?</li>
  <li><strong>Product fit:</strong> can I mention a product or collection naturally and accurately?</li>
  <li><strong>Specificity:</strong> can the post promise something more concrete than ‘tips’?</li>
  <li><strong>Freshness:</strong> is there a reason to publish this now?</li>
  <li><strong>Review risk:</strong> does it contain pricing, policy, regulated claims, or details that will change quickly?</li>
</ul>

<p>Anything scoring seven or more goes into the draft queue. A high-risk post can still go in, but it gets a prominent review note instead of auto-publish. Anything vague stays out. That last rule has saved me more time than any prompt refinement.</p>

<p>A good candidate might be ‘how to choose a collection for a first gift bundle.’ A weak candidate is ‘why our products are great.’ The first has a reader, a decision, and product context. The second is a brochure wearing an H1.</p>

<h2 id="then-i-give-the-automation-a-small-sturdy-brief">Then I give the automation a small, sturdy brief</h2>

<p>Once the winners are selected, I create a compact brief rather than a heroic prompt. Mine looks like this:</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Goal: help a shopper decide whether the new bundle suits a gift occasion
Reader question: what should I choose when I do not know their exact preference?
Products or collections: the current gift bundle collection
Proof to preserve: availability, variants, and any shipping caveats
Tone: helpful, practical, no hard sell
Publishing mode: draft for review
</code></pre></div></div>

<p>That is enough for Supra Blog Automation to create an SEO-focused draft with internal links, visuals, product context, and a publication schedule. It is also enough for a reviewer to notice when the generated copy wandered beyond the facts. If the brief is thin, I do not try to compensate with more automation. I return it to the pile.</p>

<p>For a longer-running cadence, I pair this with the practical discipline in <a href="https://the-lean-ecommerce.gitlab.io/2026/07/17/how-to-keep-a-shopify-content-calendar-full-without-inventing-topics/">how to keep a Shopify content calendar full without inventing topics</a>. The calendar should expose gaps in source material, not conceal them with generic output.</p>

<h2 id="draft-first-is-the-useful-default">Draft-first is the useful default</h2>

<p>For ordinary educational posts, I am happy to schedule a recurring rhythm. For time-sensitive promotions, product specifications, health or legal claims, and policy information, I save a draft. The point is not distrust of the tool; it is knowing which facts belong to a person closest to the store.</p>

<p>I also check four things before a post graduates:</p>

<ol>
  <li>The reader problem appears in the introduction.</li>
  <li>Product mentions are accurate and genuinely helpful.</li>
  <li>Internal links lead somewhere useful, not merely somewhere available.</li>
  <li>The CTA matches the job of the article.</li>
</ol>

<p>That fourth check matters. A buying guide can lead to a collection. A how-to may be better ending with a supporting product page or another useful guide. If I need a reminder of why the queue exists, I revisit <a href="https://the-lean-ecommerce.gitlab.io/2026/10/02/i-stopped-starting-shopify-blog-posts-from-a-blank-page/">the field note on not starting Shopify blog posts from a blank page</a>. The raw material is already in the business; the work is choosing it well.</p>

<p><img src="/assets/img/posts/2026-10-04-i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/image-03-75c9c2b5994a.webp" alt="Hand-drawn recurring draft-first publishing rhythm" /></p>

<h2 id="the-rhythm-i-would-start-today">The rhythm I would start today</h2>

<p>If your Shopify blog has been quiet, do not set up a daily automation this afternoon. Put 30 minutes on the calendar once a week. Gather the three piles, score five candidates, and ask the app for one draft from the strongest brief. Review it, publish it if it earns the right, and keep the notes that made it good.</p>

<p><a href="https://apps.shopify.com/supra-blog-automation">Supra Blog Automation on the Shopify App Store</a> has a free plan, so that first experiment does not need to become a major content initiative. Start with one customer question or one collection decision. A small, honest queue is the thing that makes ecommerce blog automation feel less like content production and more like store operations.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="shopify" /><category term="blog-automation" /><category term="content-marketing" /><category term="seo" /><category term="ecommerce" /><summary type="html"><![CDATA[A practical Shopify blog triage that turns real store signals into a reviewable automation queue.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-04-i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/cover-41948f991136.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-04-i-run-a-30-minute-shopify-blog-triage-before-i-automate-anything/cover-41948f991136.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Turn a Startup URL Into a Reviewable Launch Video</title><link href="https://the-lean-ecommerce.gitlab.io/2026/10/04/i-turn-a-startup-url-into-a-reviewable-launch-video/" rel="alternate" type="text/html" title="I Turn a Startup URL Into a Reviewable Launch Video" /><published>2026-10-04T20:32:46+00:00</published><updated>2026-10-04T20:32:46+00:00</updated><id>https://the-lean-ecommerce.gitlab.io/2026/10/04/i-turn-a-startup-url-into-a-reviewable-launch-video</id><content type="html" xml:base="https://the-lean-ecommerce.gitlab.io/2026/10/04/i-turn-a-startup-url-into-a-reviewable-launch-video/"><![CDATA[<p>I used to treat a launch video like a separate project: another brief, another agency thread, another version that stopped being useful the moment the homepage changed. That made a fresh trailer feel expensive before we had even learned what story the landing page was actually telling.</p>

<p>My more useful starting point is the URL. A good product site already contains the raw material: the customer problem, the promised outcome, the visual cues, and the handful of proof points worth animating. The catch is that a URL is not a brief. It needs a small editorial pass before it becomes a video anyone should ship.</p>

<p><a href="https://studio.videoflow.dev/">VideoFlow Studio</a> is the tool I would use for that pass when I want a terminal-first route from site to motion-graphics first cut. It reads the site, plans the film, renders it, then lets me review and direct revisions in plain language. The important distinction: Studio is the operator-facing product; the open-source <a href="https://videoflow.dev/">VideoFlow engine</a> is the structured video and editor stack underneath. I am not handing over a one-shot clip and hoping it survives the next product update.</p>

<h2 id="the-small-brief-i-make-before-giving-an-agent-the-url">The small brief I make before giving an agent the URL</h2>

<p><img src="/assets/img/posts/2026-10-04-i-turn-a-startup-url-into-a-reviewable-launch-video/image-01-c03e96667254.webp" alt="Hand-drawn three-step website to storyboard workflow" /></p>

<p>Before I run anything, I make a one-page note beside the URL. Mine has four boxes:</p>

<ol>
  <li><strong>Audience and moment.</strong> Is this for a waitlist, a launch, a sales follow-up, or a product update? One video cannot carry all of those jobs.</li>
  <li><strong>The promise.</strong> I write one plain sentence: “For <em>this</em> person, the product makes <em>this</em> hard thing easier.”</li>
  <li><strong>Three proof beats.</strong> A visual workflow, a before-and-after, or one credible detail beats a parade of features.</li>
  <li><strong>The action after the film.</strong> Visit the product page, join a waitlist, try a workflow, or book a demo. Pick one.</li>
</ol>

<p>That little note stops the agent from treating every heading on the website as equally important. It is the same discipline I used when I <a href="https://the-lean-ecommerce.gitlab.io/2026/10/01/i-made-a-narrative-inventory-before-asking-ai-for-a-launch-video/">made a narrative inventory before asking AI for a launch video</a>: first decide the story, then decide what earns screen time.</p>

<h2 id="turn-the-website-into-scenes-not-screenshots">Turn the website into scenes, not screenshots</h2>

<p>A launch film is not a scrolling capture of a landing page. I ask for a short sequence with a job for each scene:</p>

<ul>
  <li><strong>Open on the tension.</strong> Show the awkward manual step, slow handoff, or fuzzy decision the customer recognizes.</li>
  <li><strong>Reveal the new path.</strong> Introduce the product through the outcome, not a logo splash.</li>
  <li><strong>Prove it with a workflow.</strong> Animate the one or two product moments that make the claim believable.</li>
  <li><strong>Land the next action.</strong> End with a clear, quiet invitation.</li>
</ul>

<p>VideoFlow Studio can be started from a terminal with <code class="language-plaintext highlighter-rouge">npx @videoflow/studio</code>, which suits the way I work: I can point at the live site, ask for a launch-film direction, and keep the conversation close to the project. The product creates a structured plan before the final film, rather than jumping straight from URL to a mysterious export.</p>

<p>That planning step matters most when the site is crowded. If the homepage has six audiences, I choose one. If the product has five integrations, I pick the workflow that makes the customer say “yes, that is my Tuesday.” A 35-second video with one sharp point travels farther than a 90-second tour that keeps changing its mind.</p>

<h2 id="my-first-cut-review-is-visual-not-just-verbal">My first-cut review is visual, not just verbal</h2>

<p><img src="/assets/img/posts/2026-10-04-i-turn-a-startup-url-into-a-reviewable-launch-video/image-02-be0f80119d12.webp" alt="Hand-drawn video frame review with issue and fix" /></p>

<p>Once there is a render, I watch it twice. The first pass is silent. I am looking for legibility, pacing, alignment, contrast, and whether the brand still feels like itself. The second pass is with the intended sound situation: muted in a crowded tab, with headphones, or on a sales call.</p>

<p>Here is the fast checklist in my notebook:</p>

<ul>
  <li>Can I explain the promise before the halfway point?</li>
  <li>Does every on-screen element have enough contrast at laptop size?</li>
  <li>Is the product moment understandable without tiny text?</li>
  <li>Did the animation make one thing clearer, or merely busier?</li>
  <li>Does the final action match the page where the viewer will land?</li>
</ul>

<p>Studio is designed to inspect rendered frames and catch visual issues before delivery. That is a far better loop than discovering that the call to action is too faint after the campaign is live. For a related release cadence, I have also used a <a href="https://how-to-blog.gitlab.io/2026/09/30/how-to-update-a-startup-launch-video-from-release-notes/">release-notes-to-trailer workflow</a> to keep the story current without rebuilding the whole thing.</p>

<h2 id="give-revision-requests-a-location-and-a-purpose">Give revision requests a location and a purpose</h2>

<p><img src="/assets/img/posts/2026-10-04-i-turn-a-startup-url-into-a-reviewable-launch-video/image-03-d776b53db91a.webp" alt="Hand-drawn editable launch video film strip" /></p>

<p>The most productive feedback is not “make it more exciting.” It is specific enough to be checked in the next render:</p>

<blockquote>
  <p>In the workflow scene, keep the product card on screen for one beat longer, raise the contrast of the button, and replace the feature list with the customer outcome.</p>
</blockquote>

<p>That request has a place, an observable change, and a reason. I keep a maximum of three changes per revision so I can tell whether the new cut improved. Because the output remains an editable document, I can also open the built-in editor and adjust layers, timing, colors, or text manually without throwing away the agent context.</p>

<p>This is where Studio and code-first tools serve different jobs. A framework such as Remotion is excellent when a developer wants to author a video application in React. Studio is aimed at the founder or marketer who needs a reviewable motion-graphics first cut from a URL, then wants to direct it without turning the launch into a video-engineering project. I wrote more about why I <a href="https://the-lean-ecommerce.github.io/2026/09/28/how-i-keep-a-startup-launch-video-editable-after-the-first-cut/">keep a startup launch video editable after the first cut</a> because that source file is what gives feedback a future.</p>

<h2 id="treat-the-export-as-a-reusable-launch-asset">Treat the export as a reusable launch asset</h2>

<p>When the cut is ready, I export the version for the immediate campaign, then keep the plan and editable source next to the release notes. The next launch can reuse the narrative shape, replace the proof beat, and update the CTA. It is a small operational habit, but it means the video becomes part of the product system instead of a ceremonial one-off.</p>

<p>If you already have a product page that explains a real customer outcome, try <a href="https://studio.videoflow.dev/">VideoFlow Studio</a> with that URL and a four-box brief. Ask for one focused scene sequence, review the frames, and make one purposeful revision. Your first cut does not need to be final; it needs to be clear enough to improve.</p>

<p>That is the version I can ship, learn from, and revise when the product changes. For a downstream review checkpoint, this <a href="https://the-lean-ecommerce.com/blog/i-built-a-product-video-approval-loop-from-catalog-data-Prm7+daKgTKzGdAqqdcUJw">product-video approval loop from catalog data</a> is a useful companion: it keeps a sensible person in charge before a render reaches customers.</p>]]></content><author><name>The Lean Ecommerce</name></author><category term="ecommerce" /><category term="startup" /><category term="product-video" /><category term="motion-graphics" /><category term="ecommerce" /><summary type="html"><![CDATA[A practical founder workflow for turning a startup website into an editable, reviewable motion-graphics launch video.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-04-i-turn-a-startup-url-into-a-reviewable-launch-video/cover-1d372deba335.webp" /><media:content medium="image" url="https://the-lean-ecommerce.gitlab.io/assets/img/posts/2026-10-04-i-turn-a-startup-url-into-a-reviewable-launch-video/cover-1d372deba335.webp" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>