Preflight Kit - Catch Shopify CSV import failures before you upload

byβ€’
Free in-browser checker for Shopify product CSVs. Your file never leaves your browser β€” no login, no API key, no store access. Row-level findings for missing handles, duplicate handles, header drift, encoding and price bugs. Optional $19 one-shot fixed CSV.

Add a comment

Replies

Best
Maker
πŸ“Œ
Hi PH! I built this after watching merchants lose product data to Shopify's CSV import β€” silent partial failures, duplicate handles overwriting products, variants disappearing. It's a preflight check that runs entirely in your browser: drop your product CSV, get row-level findings grouped by severity, before Shopify touches anything. No login, no API key, and your catalog never leaves your machine (the parser is client-side β€” you can verify in devtools). The free check shows every finding. A $19 one-shot gives you a corrected CSV (only unambiguous mechanical fixes β€” BOM, header case), a machine-readable errors.csv, and a plain-English report that also lists what it *didn't* check. No subscription. It's product-CSV only and refuses files that look like order/customer exports, so no buyer PII goes through it. Happy to answer anything about Shopify's import quirks β€” I've collected a lot of failure modes.

Honestly love that everything runs locally in the browser, makes it feel way safer to drop a raw CSV in without thinking twice. The row-level callouts for stuff like duplicate handles and encoding bugs are exactly what a hands-on Shopify team needs.

Β 
Thank you, Aleyna! The local-first constraint was actually the founding decision β€” a product CSV is essentially your whole catalog, so I didn't want anyone to have to trust a stranger's server with it. If you're curious, you can open devtools and watch the network tab: the file never leaves the browser.

Duplicate handles are the sneakiest failure in my experience β€” Shopify treats a repeated handle as an update, so one stray duplicate row can silently overwrite an existing product mid-import. That failure mode alone is why I started building this.

If your team ever hits an import failure the checker doesn't catch yet (encoding edge cases, variant quirks, etc.), I'd genuinely love to hear about it β€” the rule set grows from real broken files.

The fact that everything runs in the browser without an upload is such a thoughtful call. Makes it actually usable for stores nervous about sharing CSVs, and the row-level findings are exactly what you'd want when triaging a messy export.