Skip to content

feat(web): a deck you share is a link, not a file you re-upload - #296

Merged
engmung merged 1 commit into
mainfrom
dev
Aug 12, 2026
Merged

feat(web): a deck you share is a link, not a file you re-upload#296
engmung merged 1 commit into
mainfrom
dev

Conversation

@engmung

@engmung engmung commented Aug 12, 2026

Copy link
Copy Markdown
Owner

A deck's pack has been served from a stable URL since it was built, and the comment above the download button has said "this is also the link you paste somewhere" the whole time — but there was no way to get that link out of the page. Sharing a deck meant downloading the .zip and re-uploading it wherever you were sharing, which is the exact step hosting it was supposed to remove.

Two buttons, one for each end of that:

  • Copy pack link — puts the address on the clipboard and kicks the build off, so the first compile is paid by the person who chose to share rather than by the stranger who clicked their link.
  • Install to my board — opens the recipient's own board with the deck queued. Send to my board builds into their own queue behind a sign-in, which someone arriving from a shared link has no reason to have; this needs neither, because the board fetches the pack itself. The firmware learned to take a plain .zip at ?src= in v3.4.0, so the machinery was already there.

An anchor rather than a button, so middle-click and open-in-new-tab still work. That costs a small hydration dance: patternsUrl needs window and answers # without it. The other callers only render after a build has finished and are always past that; this one is in server-rendered markup, where # gets written into the HTML with no state change to correct it. Verified against the served HTML — SSR emits no href, the client fills it in.

🤖 Generated with Claude Code

The pack has been served from a stable URL since it was built, and the
comment above the download button has said "this is also the link you
paste somewhere" the whole time. There was no way to get it out of the
page. Sharing a deck meant downloading the .zip and uploading it again
wherever you were sharing it - the exact step hosting it was meant to
remove.

Two buttons, one for each end of that.

"Copy pack link" puts the address on the clipboard and kicks the build
off, so the first compile is paid by the person who chose to share
rather than by the stranger who clicked their link.

"Install to my board" opens the recipient's own board with the deck
queued. "Send to my board" builds into THEIR OWN queue behind a
sign-in, which someone arriving from a shared link has no reason to
have; this needs neither, because the board fetches the pack itself.

An anchor rather than a button so middle-click still works, which costs
a hydration dance: patternsUrl needs the window object and answers "#"
without it. The other callers only render after a build, so they are
always past that - this one is in server-rendered markup, where "#"
would be written into the HTML with no state change to correct it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
pattern-flow_origin Building Building Preview Aug 12, 2026 3:30am
pattern-flow-open Ready Ready Preview Aug 12, 2026 3:30am

@engmung
engmung merged commit aa6ec41 into main Aug 12, 2026
3 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