Skip to content
osmods
Ghost

Gift subscriptions

Buy a year for someone else, redeemed with one link and no card.

View upstream
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)
})