A support inbox that lands mail — and your signed-in users' own reports — in your own D1, classifies both on your own Workers AI binding, and links each sender to the account and purchases your app already knows about.
@pithy-sh/support
pithy add supportAn inbox that already knows who is writing to you — what they bought, when they signed up, what their last session did. Signed-in users' own reports land in the same place as mail.
What it sits on
Mail lands in your D1. Attachments go to your R2. Classification runs on your AI binding. Each sender is linked to the account and purchases your app already knows about.
The honest bit
Every piece needed to build one was already in the catalog — inbound mail, R2, identity, payments, audit — and nothing composed them. This does.
You own the mail, the database, the bucket and the inference. There is nothing here a hosted dashboard unlocks: every route is reachable with a credential you issued, whatever anyone pays.
If you build it yourself
Receiving mail is a route. Everything that makes it useful is the build.
MIME, attachments, quoted replies, threading, and the fact that no two clients agree on any of it.
The address that wrote in is rarely the one on the account, and answering without that link wastes both people's time.
Routing and prioritizing without a human reading everything first.
Stored somewhere durable, scanned, and not in your database.
A response that lands in the same conversation rather than starting a new one.
Every piece this needs was already in the kit — inbound mail, R2, identity, payments, audit. Nothing composed them, which is why this exists.
pithy add supportComposes with
Passwordless sessions, mobile and web both first-class. Magic link, email OTP, Google, Apple.
Every send is a durable job: scheduled, retried, tracked. No mail ever sent inline.
Five payment rails resolving to one cross-rail entitlement, in your own Worker and your own D1.
General file storage in your own R2 bucket, with an owner, a quota, and a link you can take back.
In the dashboard
The inbox, its classifications, and the account behind each sender.
The dashboard is the admin interface for your own application: whatever this capability writes, your team can look up, check and act on from a browser. Reading is free, forever, with no time limit. Connect the project when you deploy.
Everything else
Each one composes the same way. Nothing you skip costs you anything.
Designed, not shipped
Written down, argued out, and not built yet. Each one links to the issue it is being designed in, so you can read the reasoning or disagree with it.
One command installs the package, wires its bindings into every environment your project declares, and runs its migrations.