Ghost
Gift subscriptions
Buy a year for someone else, redeemed with one link and no card.
AuthorMei-Ling Chou
PublishedAug 2026
LicenseMIT
Installs84
Why it exists
Every December, publishers field the same email: how do I gift this? The usual answer involved spreadsheets and manually comped accounts.
This mod sells gift passes through the existing Stripe setup: the buyer pays, the recipient redeems with one link, and renewal is the recipient's choice, never a surprise charge.
What it does
- Gift passes for any paid tier
- One-link redemption, no card required from the recipient
- Renewal is opt-in for the recipient
- Gifts appear in the existing Stripe reporting
The spec
These acceptance criteria were written with the person who requested the mod, then locked in as its tests. The mod has to pass them on every new release train before it rides along.
- A redeemed gift never auto-charges the recipient at term end
- An unredeemed gift refunds cleanly within the configured window
mods/gift-subscriptions/tests/renewal.spec.js
test("gifts never turn into surprise charges", async () => {
const gift = await purchaseGift(buyer, tier.yearly, recipient)
await recipient.redeem(gift.link)
await clock.advance(years(1) + days(1))
expect(recipient.charges).toHaveLength(0)
})