Postboi Pre-release

Consider it delivered.

Email, SMS, WhatsApp, push and chat from one tiny API. One command to set up, three lines to send, and a fallback chain that stops at the first channel that works.

3,000 emails a month on us, forever. Every other channel bills at provider cost.

The Postboi mascot, a cheerful postal boy waving, parcel in hand
terminal
$ bunx postboi init --sms

 Sending to · United Kingdom
 Provider · The SMS Works (~2.8p, delivered-only billing)
 SMSWORKS_API_KEY written to .env

Done. Texts stay in your terminal until you deploy.
sms()
import { sms } from "postboi"

await sms({
  to: "+44 7788 223344",
  message: "Your code is 4291"
})

Numbers normalised, segments counted, and dev texts logged instead of billed. Read the docs →

See every channel, the fallback chain and how we compare →

No backend? No problem.

Postboi Forms turns any HTML form into email. Point a plain <form> at a hosted endpoint and submissions arrive in your inbox: spam checked, rate limited, attachments included. Perfect for static sites.

index.html · that's the whole integration
<!-- any static site, no backend -->
<form action="https://postboi.email/f/form_k3v9x2m1p8q4" method="POST">
	<input name="email" type="email" required>
	<textarea name="message" required></textarea>
	<button>Send</button>
</form>
  • Zero infrastructure: works from any HTML page, GitHub Pages included.
  • Invisible spam protection: honeypot for free, managed captcha one script tag away.
  • Tidy emails: fields become tables, files become attachments, replies go to the sender.
  • Free to start: form submissions are ordinary sends on your plan. Read the announcement →

Everything handled. Nothing configured.

Zero configuration

No DNS records, no SDK per vendor, no dashboard safari. One command per channel and you're sending in under a minute.

🔌

Never locked in

20+ email providers, plus Twilio, Meta, The SMS Works, Web Push, FCM, APNs, Huawei, Slack and friends. Swap any of them with one line of config. Your calls never change.

📡

Cheapest channel first

send() walks your channels in cost order and stops at the first success. Push is free and an SMS is 3p, so stopping early saves the whole message.

🧯

Development is free

Texts and WhatsApp messages are logged locally, never sent. Email lands in a dev inbox. Nothing escapes your laptop, and nothing bills you.

🛡️

Type-safe end to end

Full TypeScript with one normalized error shape across every provider and every channel. A failure always tells you which leg broke.

🎯

SvelteKit one-liner

A contact form is a single form action: export const actions = { default: mail }. Built for SvelteKit, works everywhere.

Or bring your own provider.

Postboi handles email by default. The library speaks every provider below through the same mail() call: bring your own keys, and swapping is a one-line config change.

  • Amazon SES postboi/ses
  • Brevo postboi/brevo
  • Cloudflare postboi/cloudflare
  • Elastic Email postboi/elasticemail
  • MailerSend postboi/mailersend
  • Mailgun postboi/mailgun
  • Mailjet postboi/mailjet
  • MailPace postboi/mailpace
  • Mailtrap postboi/mailtrap
  • Mandrill postboi/mandrill
  • Microsoft 365 postboi/microsoft365
  • Plunk postboi/plunk
  • Postmark postboi/postmark
  • Resend postboi/resend
  • Scaleway postboi/scaleway
  • SendGrid postboi/sendgrid
  • ✉️ SMTP (any) postboi/smtp
  • SparkPost postboi/sparkpost
  • ZeptoMail postboi/zepto
  • Mock (testing) postboi/mock
  • Twilio sms · whatsapp
  • The SMS Works sms
  • Amazon SNS sms
  • Meta Cloud API whatsapp
  • Web Push push
  • Firebase Cloud Messaging push
  • Apple Push Notification service push
  • Huawei Push Kit push
  • Slack chat
  • Discord chat
  • Microsoft Teams chat
  • Telegram chat

Want another provider? Quit being a baby and open a PR.

Pricing that's a meter, not a wall.

Nothing breaks when you run past your included volume: extra sends are just metered. Start free, add a card only when you outgrow it. The other channels are bring-your-own-provider, billed by your provider at cost. Postboi adds nothing on top, and never charges per contact.

Starter

£9 per month

20,000 emails/mo

  • Send from your own domain
  • £0.40 per 1k after included
  • Everything in Free
Start free, upgrade later

Pro

£29 per month

100,000 emails/mo

  • Send from your own domain
  • £0.35 per 1k after included
  • Everything in Starter
Start free, upgrade later

Scale

£99 per month

500,000 emails/mo

  • Send from your own domain
  • £0.30 per 1k after included
  • Everything in Pro
Start free, upgrade later
The Postboi mascot

Put the boi to work.

One command between you and your first delivered message.

Start sending, free