Skip to content

Add sharable purchase flex card behind sharable_purchase flag#799

Merged
dhamariT merged 2 commits into
mainfrom
sharable-purchase
Jul 9, 2026
Merged

Add sharable purchase flex card behind sharable_purchase flag#799
dhamariT merged 2 commits into
mainfrom
sharable-purchase

Conversation

@dhamariT

@dhamariT dhamariT commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

After checkout, buyers get a square 1200x1200 "I bought a ___ on Stardance" social image they can copy or download from the My Orders page. The card is drawn by the existing libvips OG pipeline using the brand carousel art (moon, star mascot, Hack Club pennant) exported from the Figma design, with the item's attached image and the buyer's @Profile URL composited in.

  • OgImage::ShopOrderFlex renderer + preview harness entries
  • OgImage::Base: canvas size now resolves per subclass (square support)
  • Owner-only PNG endpoint at /shop/orders/:order_id/flex_image
  • Share module on My Orders for fresh orders: Copy image / Download PNG
  • Everything gated by the sharable_purchase Flipper flag

Supersedes #735 (rebuilt on current main).

dhamariT and others added 2 commits July 8, 2026 18:46
After checkout, buyers get a square 1200x1200 "I bought a ___ on
Stardance" social image they can copy or download from the My Orders
page. The card is drawn by the existing libvips OG pipeline using the
brand carousel art (moon, star mascot, Hack Club pennant) exported from
the Figma design, with the item's attached image and the buyer's
@Profile URL composited in.

- OgImage::ShopOrderFlex renderer + preview harness entries
- OgImage::Base: canvas size now resolves per subclass (square support)
- Owner-only PNG endpoint at /shop/orders/:order_id/flex_image
- Share module on My Orders for fresh orders: Copy image / Download PNG
- Everything gated by the sharable_purchase Flipper flag
…ength font sizing, and nil shop_item

- Run Prettier on share_purchase_controller.js (failing Prettier JS/TS CI)
- find_sharable_order: skip rejected/refunded orders via worth_counting scope
- item_font_size: size off the pre-escape name length, not the escaped string
- draw_flex_text: rescue/log like the other placement steps so a nil shop_item
  degrades instead of 500ing the endpoint
@dhamariT
dhamariT added this pull request to the merge queue Jul 9, 2026
Merged via the queue into main with commit e7785d3 Jul 9, 2026
13 checks passed
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