As your list grows
A new instance runs on Cloudflare’s free Workers plan with your starting Amazon SES limits. That suits a list of up to about 5,000 subscribers. Past that, two limits matter: how fast SES lets you send, and how many database writes the free plan allows a day.
In this guide, you raise your SES limits, which helps on either plan, and upgrade to Workers Paid, which a larger list needs. Then you see how long a send takes after each.
1. Raise your SES limits
SES caps how many emails your account sends a day, and how many a second. A send that hits the daily quota waits, emails you, and resumes on its own once the quota frees up. Raising your maximum send rate to 50 a second costs nothing, and it makes every send faster.
Ask AWS for a higher daily quota and a maximum send rate of 50, as AWS’s Increasing your Amazon SES sending quotas describes.
When AWS grants it, the SES Account dashboard shows your new rate. In
wrangler.jsonc, set theproductionblock’sSES_MAX_SEND_RATEto match.Commit the change, and push it:
git commit -am "Match the SES send rate" git pushDeploy:
npx wrangler deploy --env production
2. Upgrade to Workers Paid
On the free plan, D1 allows a fixed number of database writes a day. A send to about 7,000 recipients uses them all, and then the whole app stops until midnight UTC. Until you upgrade, the app warns the publisher before a send or an import that could use up the day. It’s recommended to upgrade from about 5,000 subscribers.
Upgrade your Cloudflare account to the $5 Workers Paid plan, which has no daily limit on writes.
In
wrangler.jsonc, add"SUBREQUEST_BUDGET": "10000"to theproductionblock’svars. It tells the app it’s on Workers Paid, so each minute sends far more (SUBREQUEST_BUDGET).Commit the change, and push it:
git commit -am "Run on Workers Paid" git pushDeploy:
npx wrangler deploy --env production
How long a send takes
| Setup | 1,000 subscribers | 5,000 subscribers | 10,000 subscribers |
|---|---|---|---|
| Free plan, a starting SES rate of 14 | about 18 minutes | about 1.5 hours | over the free plan’s daily writes |
| Free plan, SES rate raised to 50 | about 5 minutes | about 25 minutes | over the free plan’s daily writes |
| Workers Paid, SES rate of 14 | about 2 minutes | about 7 minutes | about 15 minutes |
| Workers Paid, SES rate of 50 | under a minute | about 2 minutes | about 4 minutes |
Check it
The SES Account dashboard shows the maximum send rate you set in
SES_MAX_SEND_RATE.On Workers Paid, the import screen under Subscribers → Import reads “CSV or .txt, up to 10,000 rows.”