Zero configuration
No DNS records, no SDK per vendor, no dashboard safari. One command per channel and you're sending in under a minute.
Postboi Pre-release
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.
$ 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.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 →
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.
<!-- 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>No DNS records, no SDK per vendor, no dashboard safari. One command per channel and you're sending in under a minute.
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.
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.
Texts and WhatsApp messages are logged locally, never sent. Email lands in a dev inbox. Nothing escapes your laptop, and nothing bills you.
Full TypeScript with one normalized error shape across every provider and every channel. A failure always tells you which leg broke.
A contact form is a single form action: export const actions = { default: mail }. Built for SvelteKit, works everywhere.
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.
postboi/sespostboi/brevopostboi/cloudflarepostboi/elasticemailpostboi/mailersendpostboi/mailgunpostboi/mailjetpostboi/mailpacepostboi/mailtrappostboi/mandrillpostboi/microsoft365postboi/plunkpostboi/postmarkpostboi/resendpostboi/scalewaypostboi/sendgridpostboi/smtppostboi/sparkpostpostboi/zeptopostboi/mockWant another provider? Quit being a baby and open a PR.
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.
£0 no card required
3,000 emails/mo
£9 per month
20,000 emails/mo
£29 per month
100,000 emails/mo
£99 per month
500,000 emails/mo
One command between you and your first delivered message.
Start sending, free