Business

Hire the tenth person.
The bill stays put.

Mail is billed per seat almost everywhere, so the invoice grows every time somebody joins. Here the plan is bought once. Domains and addresses are what it counts, and members are not counted at all.

Every plan, line by line

No seat maths, no per-user upgrade path, and no call before you can see the price.

On Starter

$30a month

Unlimited members, never per seat. The tenth teammate costs what the first did.

5domains

Unlimited addresses on them, and a catch-all takes every address nobody got round to making.

70,000sends a month

Unlimited receiving. Only what leaves is counted.

The bill

Price it against
your own headcount.

Move the dials to the team you actually have. People is the column that bills everybody else, and it does nothing to our line. Starter is $30 a month and carries 5 domains, unlimited addresses on them, 70,000 sends a month, and unlimited members, never per seat.

per seat everywhere but here; two or more needs Starter
5people
bills only us
1domain
per message nowhere; sets our step
5,000sent
bills only us, past ten
12addresses
You save with OpenEmail
$130 a month against Superhuman$1,680 a year
Forward EmailForward Emailforwarding only
$3/mo$36/yr
Mailchimpmarketing sends
$13/mo$156/yr
Resendtransactional sends
$20/mo$240/yr
FastmailFastmailStandard
$25/mo$300/yr
OpenEmailOpenEmailper domain
$30/mo$240/yr
Proton MailMail Essentials
$34.95/mo$419/yr
Google WorkspaceGoogle WorkspaceBusiness Starter
$35/mo$420/yr
HEY for Domainsper person
$58/mo$696/yr
SuperhumanSuperhuman+ Workspace
$160/mo$1,920/yr

One platform

Cancel the stack.
Keep the mail.

A mailbox, a team plan, the fast client, aliases, forwarding, who opened it and your product's sending API. Seven invoices, seven logins, one job.

SubscriptionJob
  • Gmail (cancelled)mailbox
  • Google Workspace (cancelled)team plan
  • Superhuman (cancelled)fast client
  • Fastmail (cancelled)aliases
  • Forward Email (cancelled)forwarding
  • Mailchimp (cancelled)open tracking
  • Resend (cancelled)transactional mail

Instead

OpenEmail

The switch

Moving a domain is
a DNS change.

Four steps, and only one of them touches live mail. The rest is records resolving.

  1. 1

    Add the domain

    Settings → Domains takes the name and generates the records. It makes no difference where the domain is registered or who runs its DNS, and there is nothing to buy per domain.

  2. 2

    Publish the records, or let the sync write them

    Copy them into whatever runs your DNS. Connect Cloudflare on the Providers tab instead and one press of Sync writes all of them into your zone at once, the MX included. Anything already at those names is replaced, except the SPF record, which keeps the other senders it lists.

  3. 3

    Verify, and watch the MX

    The domain goes green once the records resolve, and a Cloudflare sync verifies it as it finishes. This is the step that moves live mail: a domain receiving somewhere else has its MX replaced, so mail can arrive here before you have told anyone.

  4. 4

    Move people onto it

    Share an address from its row and the person is sent an invitation carrying that address at read only, or at read and send. They do not need an account first, nothing is shared until they accept, and a pending invitation grants nothing.

Access

Who sees what,
and what gets in.

A role says what somebody may do in the workspace. An address grant says which addresses they may do it to. Both have to agree before anything happens, so somebody holding a role with sending in it and no addresses can send from nothing.

Shared addresses

Hand billing@ to the person who does the billing, at read only or at read and send. A read-only grant never enters the list a send is checked against, on the send path, in the app and through the assistant alike.

SA
AL
NI
have access
Scoped visibility

One address means one address. Access is resolved on the server for every read, the thread list is filtered to the granted addresses, and opening a single thread is re-checked against them.

Sarahsupport@
Alexbilling@
Ninacareers@

read, or read and send as it, with nothing else visible

Phishing checks

Mail the sending domain itself disowns lands in Spam rather than the inbox. A DMARC failure is acted on only where the domain publishes an enforcing policy, and p=none is left alone.

receipts@stripe.com
SPFDKIMDMARC
verified sender

Compared

Every mailbox
on one table.

The same rows for everyone, with list prices on them. Where a vendor does not document something, it says so rather than pretending the answer is no.

Compared
OpenEmail
OpenEmail
per domain
Fastmail
Fastmail
Standard
Proton Mail
Mail Essentials
Google Workspace
Google Workspace
Business Starter
HEY for Domains
per person
Superhuman
Superhuman
+ Workspace
What you actually pay forThe workspaceEach personEach personEach personEach personEach person, twice
Five people, every month$30$25$34.95$35$58$160
Twentieth person costs$0$5$6.99$7$12$32
Hosts the mail itselfa client on top of Gmail or Outlook
Catch-all on your own domainyours to switch onpaid plansvia a routing rulealiases; catch-all not documentedwhatever the host does
Free on your own domainone domain, ten addressestrial onlycustom domains are paidtrial onlyno trial on domainstrial only
Drafts, subjects and answers from AIwriting assistant onlyGeminiBusiness tier
Your own agent can work the inboxMCP serverJMAP APIAPI, no MCP
End-to-end encryptionbetween OpenEmail mailboxestheir whole pointenterprise tiers

What is missing

Two things to
plan around.

Both land on a team moving its domains here. Read them before you move anyone.

Moving old mail across
Nothing here reads an mbox, an .eml file, a provider archive or an IMAP account, and there is no screen to start one from. Old mail stays where it is, so you set a forward at the old provider and let the archive sit there while you move.
Bounce visibility over the API
A delivery report is parsed, matched to the original by Message-ID, labelled on the thread and raised as email.bounced. Nothing writes back to the send row, whose status has no bounced state, so GET /emails still reads sent.

Who it is for

One mailbox.
Three ways in.

Individuals

A free address with the whole client behind it, and nothing held back.

acme.comacme.devstudio.acme.com
hello@acme.comdelivered
billing@acme.comdelivered
oct-2026-signup@acme.comdelivered
anything-at-all@acme.comdelivered
Businesses

Addresses for everyone, with members never counted as seats.

SSarahAAliJJamieNNadia
No seat added. The bill does not move.
Developers

The same mailbox over an API, an SDK and MCP.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.

Start on a domain you own.
Add the people after.

Book a call

Your inbox, on your
own terms.

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

OpenEmail

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

© 2026 OpenEmail. All rights reserved.The all in one email tool.