npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@abraca/resend

v2.29.0

Published

Resend bridge for Abracadabra — Inbox + Outbox documents wired to email send/receive

Downloads

1,960

Readme

@abraca/resend

Resend bridge for Abracadabra. Bind it to a Space and it bootstraps two top-level documents:

  • Outbox — a kanban with Draft → Ready → Sent → Failed. Move a draft card into Ready and it gets rendered to HTML and sent via Resend, then auto-moved to Sent (or Failed with the error attached).
  • Inbox — receives email landed by Resend Inbound. Each incoming message becomes a child document whose label is the subject and whose body is the email content; sender / recipients / message-id are stored in meta.

Identity is an Ed25519 key (auto-generated on first run; same shape as @abraca/mcp). The process exposes a small HTTP server for the Resend Inbound webhook; the operator is responsible for making the port reachable (tunnel / reverse proxy) and pointing Resend at it.

Install

pnpm add -g @abraca/resend

Environment

| Var | Required | Default | Notes | |---|---|---|---| | ABRA_URL | yes | — | Abracadabra server URL | | ABRA_SPACE_ID | no | first visible space | Which space to bind | | ABRA_KEY_FILE | no | ~/.abracadabra/resend.key | Ed25519 seed | | ABRA_INVITE_CODE | no | — | Used only on first-run register | | ABRA_AGENT_NAME | no | Resend Bridge | Presence display name | | RESEND_API_KEY | yes | — | | | RESEND_FROM | yes | — | Default from address | | RESEND_INBOUND_ENABLED | no | true | Set false to skip the webhook server | | RESEND_INBOUND_PORT | no | 0 (ephemeral) | Bind port for /inbound | | RESEND_INBOUND_HOST | no | 0.0.0.0 | Bind host | | RESEND_INBOUND_SECRET | required if inbound enabled | — | Svix signing secret from Resend dashboard |

Outbox doc conventions

A doc in the Outbox carries its addressing in meta:

to: ["[email protected]"]
cc: ["[email protected]"]
bcc: []
subject: "Project kickoff"   # falls back to the doc's label
from: "[email protected]"        # falls back to RESEND_FROM
replyTo: "[email protected]"

When the doc is moved into the Ready column, the watcher renders its body to HTML via @abraca/convert and sends. On success, meta.resendId and meta.sentAt are written and the doc is moved to Sent. On failure, meta.error

  • meta.errorAt are written and the doc is moved to Failed.

Sends are idempotent: if meta.resendId is already set, the doc is left alone.

Inbox doc conventions

Each inbound message is created under Inbox with:

  • label = subject (or "(no subject)")
  • body = email plain-text (markdown-shaped)
  • meta.from, meta.to, meta.cc, meta.subject, meta.receivedAt, meta.messageId, meta.inReplyTo
  • attachments uploaded via the REST API; their handles land in meta.attachments[]

Run

ABRA_URL=https://your-server \
RESEND_API_KEY=re_xxx \
[email protected] \
RESEND_INBOUND_SECRET=whsec_xxx \
RESEND_INBOUND_PORT=8787 \
abracadabra-resend