LinkVault is a Bun + React app for secure digital downloads after Stripe Payment Link checkout. Sync Stripe products, upload files, verify Checkout Sessions, generate expiring download links, and email customers via Resend.
No reviews yetBe the first to leave a review for LinkVault
Maker
📌
Hey Product Hunt! 👋
I built LinkVault to solve a problem I kept running into: Stripe Payment Links are the fastest way to start selling digital goods, but Stripe doesn't actually deliver the files after payment. Most solutions either mean adopting a whole new checkout, or wiring up a bunch of custom webhook code.
LinkVault keeps things deliberately narrow. Stripe stays responsible for what it's great at — checkout, taxes, receipts, and payment methods — while LinkVault handles secure fulfilment after payment. Here's the flow:
Customer clicks your Stripe Payment Link CTA and pays on Stripe-hosted checkout
Stripe redirects them to a branded LinkVault download page
LinkVault verifies the Checkout Session, then creates a unique, expiring download link and emails the same link via Resend
Delayed payment methods (bank debits, etc.) get a "payment processing" page and are fulfilled automatically once Stripe confirms via webhook
Some details I care about: download links expire after 7 days and are download-count limited, all links for an order share one budget (so a shared redirect URL can't be milked), and only the SHA-256 hash of each token is stored. Multi-file products stream as a ZIP on the fly.
It's open source, built with Bun + TypeScript + React, and self-hostable via Docker Compose or Easypanel.
Would love your feedback — especially from anyone selling digital goods through Stripe today. What would make this more useful for your setup?
Report
How does LinkVault handle files larger than the typical Resend attachment limit, or does it just send a download link either way?
Report
Maker
@sraaf2l Thank you very much for your question. The files are not sent by resend. The files are stored on the server and only a secure link to them is sent to the client.
Report
Finally a tool that handles the whole Stripe-to-file handoff without duct tape. The expiring link setup saved me from wiring up a separate cron job for cleanup.
Report
the choice to verify Stripe Checkout Sessions on the server side instead of trusting client callbacks shows real care for security — wish more download tools handled it this cleanly.
Report
Synced my Stripe products in seconds and the expiring download links just work, no fuss. The Resend email integration is a nice touch for handing files off to customers.
How does LinkVault handle files larger than the typical Resend attachment limit, or does it just send a download link either way?
@sraaf2l Thank you very much for your question. The files are not sent by resend. The files are stored on the server and only a secure link to them is sent to the client.
Finally a tool that handles the whole Stripe-to-file handoff without duct tape. The expiring link setup saved me from wiring up a separate cron job for cleanup.
the choice to verify Stripe Checkout Sessions on the server side instead of trusting client callbacks shows real care for security — wish more download tools handled it this cleanly.
Synced my Stripe products in seconds and the expiring download links just work, no fuss. The Resend email integration is a nice touch for handing files off to customers.