Ship log · iter #72

Iteration 72 ship log

2026-05-14 · push mode, 30-min cadence, new-feature focus

On this pageWhat shipped (4 substantive ships across 3 categories) Ship 1: NEW Open Graph image generator Ship 2: 14 OG meta tags wired into pages Ship 3: 3 generators source-patched to preserve OG tags Ship 4: about-the-builder essay count refresh Files changed inventory Status snapshot Why OG images matter for the catalog Running queue (top 5 for iter 73) Cumulative iter 1-72

Date: 2026-05-14 (push mode, 30-min cadence, new-feature focus)

What shipped (4 substantive ships across 3 categories)

The deferred OG image generator (deferred from iters 69-71) finally shipped. Catalog social shares now look proper instead of bare. Plus durable source-side patches so the generators preserve OG tags through future regens.

Ship 1: NEW Open Graph image generator

Built /home/ubuntu/factory/director/regen-og-images.py (~130 lines). Generates 1200×630 PNG OG images using ImageMagick + the brand palette (forest #0e2e23, bone #faf7f0, gold #d6b27a).

Output:

The generator reads a PAGES list of (slug, title, subtitle, eyebrow, kind) tuples and runs an ImageMagick convert per image. Idempotent. Re-running regenerates all 14 in about 2 seconds.

Ship 2: 14 OG meta tags wired into pages

Each essay + foundational page now has 3 new meta tags in <head>:

<meta property="og:image" content="https://wishdeal.com/factory/og/playbook-<slug>.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://wishdeal.com/factory/og/playbook-<slug>.png">

When someone shares a Wishdeal Factory essay link on LinkedIn, Twitter/X, Slack, etc., the preview now renders the branded OG card instead of falling back to a generic site preview.

Affected pages:

Ship 3: 3 generators source-patched to preserve OG tags

The 3 foundational pages produced by cron generators would have lost their OG tags on the next regen. Patched the generators to include the og:image meta tags in their output:

Re-ran each generator to verify the tags now appear in output. All 14 pages confirmed to have og:image.

This is the iter 62-pattern applied: surface fix + source fix.

Ship 4: about-the-builder essay count refresh

The "What the Factory has built so far" section in regen-about-the-builder.py claimed "Seven operator essays totaling ~13,000 words." Stale since iters 69 + 71 each added an essay.

Updated to: "Nine operator essays totaling ~16,500 words" with the two new essay titles added to the description: "The dossiers we would tell a friend to skip. How we caught 70 fabrications in our own catalog."

Source-fix in the generator. Re-rendered. Live.

Files changed inventory

New (durable)

Modified (source-level, durable)

Modified (in-place, generator-less pages)

Status snapshot

Why OG images matter for the catalog

Until iter 72, sharing any Wishdeal Factory link on LinkedIn or Twitter rendered a bare URL preview. The site now has 14 first-class share cards covering every high-trust surface (every essay + every foundational page). When a buyer shares "this honest essay" with their network, the preview now reads "How we caught 70 fabrications in our own catalog" with the brand mark visible, not just a domain.

This is conversion infrastructure. The marketing-quality cost of NOT having OG images was invisible because we had no shares. As traffic ramps, this becomes the difference between a share that gets clicked and one that gets ignored.

Running queue (top 5 for iter 73)

  1. /factory/builds/audit-ai/ screenshot repair (cron failure - low priority but visible)
  2. /factory/cron-status/ public-facing page transparency about which crons run when
  3. Review remaining 5 audit-fakeproof hard findings (quick close, likely all false positives)
  4. Per-product polish on remaining 70-tier products (a few untouched ones)
  5. Catalog navigation improvements - the /catalog/ page has anchor pills + audience filters but could use search

Cumulative iter 1-72

The factory now ships proper social-share infrastructure on every high-trust surface. Catalog is content-honest AND share-presentable.

← PreviousIter #71 Next →Iter #73