Skip to content

feat(providers): add Pulsenote - #13487

Open
gpabijan88 wants to merge 1 commit into
nextauthjs:mainfrom
gpabijan88:feat/pulsenote-provider
Open

gpabijan88 wants to merge 1 commit into
nextauthjs:mainfrom
gpabijan88:feat/pulsenote-provider

Conversation

@gpabijan88

Copy link
Copy Markdown

☕️ Reasoning

Adds Pulsenote as a built-in email provider. It is an email API with EU data residency, and magic links are its primary use case — so the built-in list is where people would look for it.

The implementation follows the existing HTTP email providers (resend.ts, forwardemail.ts) rather than the Nodemailer one: a single fetch, no new dependency.

One addition worth flagging. Pulsenote sends only from a domain the account has verified. Until one is verified, the API accepts and renders a message but does not deliver it, returning sandbox: true. Left unchecked, sendVerificationRequest would resolve, Auth.js would report success, and the user would wait indefinitely for a link that was never sent — with nothing in any log to explain it. The provider throws instead, with an actionable message.

🧢 Checklist

  • Documentation
  • Tests
  • Ready to be merged

Documented with JSDoc in the same file, per the contributing guide, rather than the @todo Document this the neighbouring email providers currently carry. Kept to what an email provider needs — no OAuth boilerplate.

No tests: the existing email providers (resend, forwardemail, postmark, sendgrid) have none, so this follows the established pattern. Happy to add them if you would prefer.

Following the contributing guide

  • Config at packages/core/src/providers/pulsenote.ts, named default export
  • JSDoc documentation in the same file
  • Logo at docs/public/img/providers/pulsenote.svg
  • Added to the drop-down in .github/ISSUE_TEMPLATE/2_bug_provider.yml, in alphabetical position

provider-types.ts is generated and gitignored, so it is not committed — pnpm providers picks the new file up on its own; verified locally.

Verification

Built and type-checked inside this monorepo: pnpm css && pnpm providers followed by tsc --noEmit -p packages/core/tsconfig.json reports no errors, and the generated provider-types.ts contains pulsenote.

Disclosure: I maintain Pulsenote. Happy to adjust anything to fit your conventions, or to close this if built-in providers are not being expanded right now.

Pulsenote is an email API with EU data residency. Magic links are its main use
case, so a built-in provider makes it discoverable where people actually look.

Follows the shape of the other HTTP email providers (Resend, Forward Email), with
one addition: Pulsenote accepts and renders a message without delivering it when
the account has no verified sending domain, so the provider throws in that case.
Left unchecked, sign-in would report success while the user waits for a link that
was never sent.

Documented with JSDoc rather than @todo, per the contributing guide.
@vercel

vercel Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
auth-docs Ready Ready Preview Aug 25, 2026 8:39pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
next-auth-docs Ignored Ignored Preview Aug 25, 2026 8:39pm

Request Review

@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

@gpabijan88 is attempting to deploy a commit to the authjs Team on Vercel.

A member of the Team first needs to authorize it.

This branch was successfully deployed

1 active deployment
Preview – auth-docs — 5a999f97 Deployed Aug 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Refers to `@auth/core` providers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant