Etsy Listing Kit

Active

Generate a suite of listing artifacts from a single image.

History
  1. Jul 24–31, 2026
    The first pass at this problem was a whole shop-manager app — pattern libraries, templates, listing wizards, SEO copy — being overengineered with no signal, so the lesson, the same one Best Day Ever taught, was to invert everything: one file, one paid pack, leave. receipt ↗

    Katy: "Similar to the Best Day Ever pivot - I was overengineering the entire product with no signal. And I tend to get really hyperfixated on the product already, so I needed something to pull me back out."

    gh: the etsy-listing-manager prototype ("Neon Purl") ran as a multi-page manager — Dashboard · Patterns · Templates · Listings · Store — with no payment and no accounts. The day before the new build started, its lessons were written down as prior art: the manager framing is deliberately dropped, the paste/drag upload is the one idea worth keeping, and the new bet centers on image assets where the old one centered on SEO text.

    Links: prior art · intent

  2. Jul 25–26, 2026
    Built the narrowest paid version of the job in about a day — upload one embroidery design, preview six watermarked Etsy-ready images, pay $3 once, download the pack, no account — built to answer one blunt question: will a stranger pay a few dollars, right now, to skip the asset-prep chore? receipt ↗

    gh: OpenSpec change and the whole transactional foundation landed in a single PR: Stripe Checkout adapted from Simple Seed Organizer's subscription integration into one-time, metadata-linked orders; a webhook-driven, idempotent fulfillment flow; and a revenue:test command that exits non-zero until $100 of real, refund-adjusted Stripe revenue lands within 14 days of launch.

    Links: PR · proposal · intent

  3. Jul 27–28, 2026
    Two days of fighting the image library onto Vercel later, the funnel took its first live $3 payment — the author's own, on purpose, proving the full path from upload through Stripe to the download email end to end. receipt ↗

    gh: sharp's Linux binaries had to be forced into the function bundle across two fix PRs before image generation worked in production; the 2026-07-28 live payment verified checkout's statement descriptor in the same pass.

    supabase: first fulfilled order 2026-07-27; the six lifetime orders that follow are all owner self-purchases (see the verdict entry).

    Links: PR · PR

  4. Jul–Aug 2026
    Polished like a buyer was coming: the pack was restyled to the composition language of Watermark & Hue — the author's live Etsy shop — the weakest cards were replaced, the preview was made accessible, buyer emails got the brand, and the funnel moved onto its own host. receipt ↗

    Katy: "W&H is Watermark & Hue, a live Etsy site that I have an api key for. I use it for experimenting and as real world data for things in the etsy realm."

    gh: the restyle PR adopts "the composition language from Katy's real listing images" (the W&H Listing Generator Figma file) — plain studio background, an arch logo badge whose accent color is sampled from the uploaded design's inked pixels; a follow-up recomposition dropped the detail/info cards for mustard and stitched scenes. Around it: preview scroll/focus/announce accessibility, failed confirmation emails made visible, buyer emails branded with replies routed, and the etsy-listing-kit.vercel.app vanity host.

    Links: restyle PR · recompose PR · vanity host PR · Figma

  5. Jul–Aug 2026
    Launched a $5/day Google Ads burst to put the funnel in front of strangers — and it delivered nothing for a week: a bid cap below the auction price was set but not shown anywhere in the Ads UI, and conversion tracking was silently broken, so the window taught exactly nothing. receipt ↗

    Katy: "I didn't have any automations set up for google ads - and my campaign got stuck in a strange state where I had a bid cap set but it wasn't shown anywhere."

    gh: the campaign plan was drafted two days after launch; the campaign was published Jul 31 and enabled Aug 4, and the day-by-day log dutifully recorded a burst that, it later turned out, never ran. Google's own first-impression date is Aug 7. Two faults overlapped: the hidden CPC cap (~$0.50 against a ~$3.30 auction), and conversion tracking pointed at the wrong Ads account with its beacons blocked by CSP.

    Links: campaign plan PR · enable-date log PR · campaign log

  6. Aug 7–16, 2026
    The campaign ran to its 15–30-click finish line and came back with the answer the gut call predicted — 30 clicks of real Etsy-listing intent at 3.09% CTR, and not one conversion once visitors landed and saw the kit was embroidery-specific; $56.03 spent, six paid orders lifetime, all self-purchases. receipt ↗

    Katy: "My gut said that an embroidery pattern maker was too niche, but the campaign hit that home. Decent signal on the keywords, but no conversions once users landed on the page and realized it was specific to embroidery."

    google ads: (read live 2026-08-23, campaign etsy-listing-kit-test1): 972 impressions, 30 clicks, 3.09% CTR, $56.03 total spend — average CPC ~$1.87, well under the feared ~$3.30 — and 0 conversions. The run was tended, not left idle: budget retuned Aug 9, two broad-match keywords added Aug 11 from the Ads mobile app, last manual change Aug 16; the campaign now sits Paused.

    supabase: six fulfilled orders, 2026-07-27 through 2026-08-07, all owner self-purchases; zero rows carry a click id or UTM source — the zero-conversion read is the orders table's, not just Google's.

    gh: the plan's kill/continue table had anticipated exactly this shape — "15+ clicks, 0 upload-starts → message mismatch." The final totals never made it back into the repo's campaign log, whose last recorded day is Aug 9.

    Links: campaign log

  7. Aug 7–9, 2026
    Forcing the bid cap to $15 produced the first impressions on Aug 7 — 129 impressions and 2 clicks at roughly $3.30 each, triple the CPC the plan assumed — so the 3-day, ~$15 burst was rewritten as a ~two-week, $50–100 test, and the log was corrected to say the first week's run never happened. receipt ↗

    Katy: "Once I untangled myself from that ui I was able to run it."

    gh: conversion tracking repaired across two PRs the day delivery started (wrong Ads account, missing event, CSP unblocked); the ad burst reset to Aug 8; a make-another CTA added to the result page; and a dedicated correction PR retitled the record — "the campaign never served until Aug 7." GA4 was linked to Ads for the first time on Aug 9.

    Links: correction PR · tracking repair PR · burst reset PR · campaign log

  8. Aug 2026
    The verdict became a pivot: either widen the kit to any kind of Etsy listing — no embroidery hoops — or shift the prism to evaluate a seller's existing listings alongside the fixed assets in the same UI; the demand question stays open, the embroidery framing doesn't. receipt ↗

    Katy: "the verdict was to either widen the offering to any kind of listing kit on etsy (no embroidery hoops) or shift the prism a bit to offer an evaluation of existing listings along with the fixed assets right in the same ui. So the verdict was to pivot, basically."

    gh: no pivot commits yet as of 2026-08-23 — the decision lives ahead of the trail. The evaluation direction rhymes with the listing-completeness scorecard already proposed against the Watermark & Hue capture pipeline (the etsy-zero-sales-funnel change), so the two threads may converge.

    notion: Status = Validating — consistent with a pivot in progress, not an ending.

    Links: scorecard proposal

ARTIFACTS