Email infrastructure for the platforms people rely on.

For SaaS platforms that send and receive email for their customers. Build on PostShiba, move from your current provider, or plan a custom deployment with us.

Powering the email behind Bento Built by the team that operates it.

Try suspending or resuming the cluster, a tenant, or a sending domain in this example. Suspending a tenant pauses its domains. Suspending the cluster pauses every tenant.

Production
Acme

Sent today 13,500

mail.acme.com
billing.acme.com
notify.acme.com
Globex

Sent today 11,680

mail.globex.io
alerts.globex.io
receipts.globex.io

5 of 6 domains sending billing.acme.com suspended.

Their domains. Your product.

Keep each customer's verified domains, SMTP credentials, and inboxes in their own tenant.

Pause one customer.

Suspend a tenant or a single sending domain while you investigate. Everyone else keeps sending.

Stop unwanted sends.

Import each customer's suppression list and manage it alongside the rest of their email.

Follow the message. Find the answer.

Answer your customer's next delivery question with the provider response and the customer it belongs to in front of you.

An example message is processed, deferred once, then delivered. Select an event to see the webhook payload your app receives for it. Each one carries the tenant and the order ID set at send time.

Message activity

To customer@example.com

Your order is confirmed

Tenant
acme
Order
order_123
POST hooks.example.com/postshiba 200 OK
1[ 2 { 3 "event": "processed", 4 "email": "customer@example.com", 5 "timestamp": 1789378862, 6 "sg_event_id": "capsule-41", 7 "tenant_id": "acme", 8 "order_id": "order_123", 9 "unique_args": { 10 "order_id": "order_123" 11 } 12 } 13]
1[ 2 { 3 "event": "deferred", 4 "email": "customer@example.com", 5 "timestamp": 1789378863, 6 "sg_event_id": "capsule-42", 7 "response": "421 4.7.0 Try again later", 8 "attempt": "1", 9 "tenant_id": "acme", 10 "order_id": "order_123", 11 "unique_args": { 12 "order_id": "order_123" 13 } 14 } 15]
1[ 2 { 3 "event": "delivered", 4 "email": "customer@example.com", 5 "timestamp": 1789378923, 6 "sg_event_id": "capsule-43", 7 "response": "250 2.0.0 OK", 8 "attempt": "2", 9 "tenant_id": "acme", 10 "order_id": "order_123", 11 "unique_args": { 12 "order_id": "order_123" 13 } 14 } 15]

Signed with HMAC-SHA256. Retried with backoff.

Connect it to your customer.

Every event carries the tenant and the unique args you set at send time, like an order ID.

Trust the events you receive.

Delivery and inbound webhooks are signed, so your app can verify each one before acting on it.

Pick up where you left off.

Failed webhook deliveries retry with backoff. Replay dead letters from the dashboard.

Grow your platform. Know what it costs.

A fixed monthly plan per cluster, sized by your busiest hour and rolling 24 hours.

A bill you can budget for.

Monthly invoice Production cluster
Small plan40,000/hour · 240,000/24h
$49.00
Emails sent6,192,000
$0.00
Shared IP1 included
$0.00
Tenants2
$0.00
Sending domains6
$0.00
Total $49.00

No surprise charge at the limit.

Capacity Under the cap Hourly cap reached
This hour30,000 / 40,00040,000 / 40,000
Rolling 24 hours148,800 / 240,000

Every path is sending. 10,000 left this hour.

Inbound has its own hourly allowance.

A deployment plan. A team on your side.

Moving providers or exploring your own cloud? Plan it with the people who run PostShiba and Bento.

A migration with a plan.

Map your domains, suppressions, and traffic. Add PostShiba as a backup, then cut over in stages.

Move from SendGrid Stage 3 of 3
  • Sending domains 6 domains, records next to SendGrid's 6 domains, records next to SendGrid's 6 domains, records next to SendGrid's Verified Verified Verified
  • Suppressions 1,284 addresses 1,284 addresses 1,284 addresses Imported Imported Imported
  • Delivery webhooks Same SendGrid event format Same SendGrid event format Same SendGrid event format Waiting Connected Connected
  • Traffic All tenants on SendGrid Globex on PostShiba, SendGrid as fallback Every tenant on PostShiba Waiting Backup Cut over

SendGridPostShiba

We know how it feels to be locked out.

Account suspension is a last resort. When a problem can be contained to one sending domain, we pause that domain and work with you on recovery.

Plan your platform with us.

Leave your work email and we'll follow up on your migration or deployment. Any size is welcome.

Talk to the people who run it.