Skip to content

Free pack: site nav dialog + generator scripts + campaign HTML - #177

Merged
pablostanley merged 1 commit into
mainfrom
feat/pack-dialog-nav
May 18, 2026
Merged

Free pack: site nav dialog + generator scripts + campaign HTML#177
pablostanley merged 1 commit into
mainfrom
feat/pack-dialog-nav

Conversation

@pablostanley

Copy link
Copy Markdown
Owner

Summary

Three things in one branch, all in support of the free Gumroad pack launch.

1. Site nav "pack" entry → in-app dialog

  • Desktop header gets a new pack link. Mobile menu gets a Pack row.
  • Both trigger PackDialog — modal previews the pack (hero image, summary, bullets) and links out to Gumroad. Keeps the pitch on-site instead of bouncing cold.
  • PackDialog mounts once in the root layout and is triggered via a tiny custom-event-based openPackDialog() helper — no prop drilling, no global store, lazy-loaded.

2. Pack generator scripts (scripts/)

Idempotent, seeded, reproducible. Output lands in the gitignored pixabots-gumroad/ tree.

  • generate-gumroad-pack.mjs — 2,000 PNGs × 4 sizes (240/480/960/1920) + 2,000 GIFs @ 480
  • generate-pack-webp.mjs — 2,000 animated WebPs @ 480 (~20× smaller than GIF)
  • generate-gumroad-campaign.mjs — 6 animated 16:9 banner GIFs + animated square thumbnail + 5 social-size variants

3. Campaign HTML (pixabots-gumroad/campaign/)

  • index.html — master dashboard with click-to-copy titles, tags, captions, four format-variant Name/Description pairs, and Additional Details key/value pairs.
  • gumroad-body.html — Gumroad product description in pasteable HTML.
  • email.html — subscriber blast with hero image, four subject-line options, direct product URL.

Test plan

  • Click pack in desktop nav → dialog opens with hero image, bullets, CTA
  • Tap menu → tap Pack → mobile menu closes, dialog opens
  • Click CTA in dialog → opens Gumroad page in new tab
  • Esc and outside-tap close the dialog
  • prefers-reduced-motion still respected (Dialog reuses site Dialog)
  • pnpm tsc --noEmit clean
  • pnpm build clean

🤖 Generated with Claude Code

…n HTML

Three things in one branch:

1. **Site nav "pack" entry → in-app dialog.** Tapping "pack" in the header
   (desktop nav or mobile menu) opens a `PackDialog` modal that previews
   the free pack and links out to pablostanley.gumroad.com/l/pixabots —
   keeps people on the site for the pitch instead of bouncing them to
   Gumroad cold. Dialog is mounted once in the root layout and triggered
   via a tiny custom-event-based `openPackDialog()` helper so there's no
   prop drilling.

2. **Pack generator scripts (`scripts/`).** Idempotent, seeded,
   reproducible:
   - `generate-gumroad-pack.mjs`     2,000 PNGs × 4 sizes + 2,000 GIFs @ 480
   - `generate-pack-webp.mjs`        2,000 animated WebPs @ 480
   - `generate-gumroad-campaign.mjs` 6 animated 16:9 banners + animated
     square thumbnail + 5 social-size variants
   All output lands in the gitignored `pixabots-gumroad/` tree.

3. **Campaign HTML (`pixabots-gumroad/campaign/`).** Master dashboard
   (`index.html`) with click-to-copy buttons for titles, tags, captions,
   four format-variant Name/Description pairs, and Additional Details
   key/value pairs. Plus `gumroad-body.html` (Gumroad product description
   in pasteable HTML) and `email.html` (subscriber blast with hero
   image, four subject-line options, direct product URL).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pixabots Ready Ready Preview, Comment May 18, 2026 0:04am

Request Review

@pablostanley
pablostanley merged commit b384de3 into main May 18, 2026
3 checks passed
@pablostanley
pablostanley deleted the feat/pack-dialog-nav branch May 18, 2026 23:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant