Catching a literal ${MY_LICENSE_KEY} from an unset variable and giving a helpful message is a tiny detail that probably saves a pile of support emails. For past_due, would you store the grace end date on the entitlements row itself, or keep it as a rule inside hasAccess()?
Treating entitlements as their own table instead of reading Stripe state on every request saves a lot of pain. Webhooks arrive late or twice, so idempotent handlers plus a nightly reconcile job is the combo that holds up.
Praneet Brar
Building cool things like launch platforms
Catching a literal ${MY_LICENSE_KEY} from an unset variable and giving a helpful message is a tiny detail that probably saves a pile of support emails. For past_due, would you store the grace end date on the entitlements row itself, or keep it as a rule inside hasAccess()?