Transactional email for developers.

One typed API to send, template, and track every message — with signed webhooks, provable deliverability, and a test mode that never touches a real inbox.

$ npm i @nayma/nida

Built onAmazon SES delivery·DKIM / SPF / DMARC·HMAC-signed webhooks·Idempotent sends·Cursor pagination

Everything the send path needs.

Nida is the API and console around your delivery — so you write one call, not a queue, a signer, and a bounce handler.

A typed API and SDK

Send from Node with a fully-typed client, or hit the REST API directly. Retries are safe by design and lists paginate cleanly.

  • Idempotency keys make retried sends exactly-once
  • Keyset pagination with stable next_cursor
  • Typed errors with a code you can branch on
POST/v1/emails
202Accepted
idmsg_01M0J…
statusqueued

Deliverability you can prove

Verify a domain with DKIM and SPF, set a custom MAIL FROM for full alignment, and follow the built-in DMARC guidance. Bounces and complaints suppress automatically.

  • DKIM + SPF verification with copy-paste DNS records
  • Custom MAIL FROM subdomain for SPF/DMARC alignment
  • Automatic suppression list on bounce and complaint
DKIMverified
SPFaligned
DMARCp=none
MAIL FROMmail.acme.com

Templates and signed webhooks

Author versioned Handlebars templates per locale and render them by slug. Delivery events arrive at your endpoint HMAC-signed, retried on failure, and replayable from the console.

  • Versioned templates with draft and published states
  • Strict variable validation before a send goes out
  • constructEvent() verifies the signature for you
eventemail.delivered
message_idmsg_01M0J…
Nida-Signaturet=…,v1=…
deliverysigned

Built for the whole lifecycle.

Not just the send call — the tooling around it that you would otherwise build yourself.

Test mode

Test keys simulate outcomes by recipient — delivered@, bounce@, complaint@ — with no real inbox touched.

Signed webhooks

Every event is HMAC-SHA256 signed over the raw body, retried with backoff, and replayable.

Suppression list

Hard bounces and complaints are suppressed automatically, with search and manual control.

Idempotency

Pass an idempotency key and a retried request returns the original result — never a duplicate send.

Custom domains

Bring your own sending domain with DKIM, SPF, a custom MAIL FROM, and DMARC guidance.

Audit log

Every key, domain, and webhook change is recorded, scoped per project and environment.

Send your first email in minutes.

Create a test key, send with the SDK or curl, and watch the timeline advance to delivered — no domain required to start.