Scott Keck-Warren
Michigan
PHP and Laravel developer with 13 years of experience building and maintaining production apps. US Eastern, English.
Sign up now for $10 in credit on a new Laravel Cloud account.
Confidently own your tech stack
Point your staging app's SES endpoint at Sesame and run real load through your real send path. Sesame draws a seeded outcome per recipient and posts signed SNS notifications back to your webhook, then tells you whether every one of them changed the right state. It is an experimental proof of concept: installing it provisions the web app, Postgres and a managed queue, with no scheduler so it can hibernate when idle and push-to-deploy turned off, but that install path has not been tested on Laravel Cloud, so it is not ready for real use.
Work in progress. Available to supporters.
Proof of concept, validated against a local harness
Accepts Content.Raw requests from the stock AWS SDK and returns SES-shaped message IDs and error codes, including throttling.
Draws delivery, bounce, complaint, delay and reject per recipient from presets, and replays a run exactly from its seed.
Posts event-publishing payloads signed with SignatureVersion 2, which the AWS PHP validator accepts once bound to Sesame's host.
Delivers nothing until your webhook fetches the SubscribeURL, so confirmation handling is exercised too.
Retries only 5xx and 429 responses, drops everything else, and reports each drop and each webhook response time.
Exposes the outcome drawn and every event's delivery status per message ID, so a run can check state, not just speed.
In the proof of concept a 15-minute plateau at 30 sends a second reconciled all 27,000 messages with no mismatches. That run used a local CRM-compatible harness, not a real consumer's staging environment.
Sesame acknowledges each send from a buffer on the instance and moves it to Postgres moments later, so deploying during a test run can lose sends from that run. Scalpels turns push-to-deploy off for that reason. The install has not yet been tested on Laravel Cloud, and whether ingest stays on Laravel Octane or moves to Rust is undecided.
Compared with other ways to test SES sending
Sesame imitates SES and SNS so a staging run can measure sending and notification handling together. The alternatives below either use real SES, emulate the API locally, or capture mail for inspection, and each does things Sesame does not.
| Feature | Sesame Experimental proof of concept, install untested on Cloud | Amazon SES mailbox simulator Real SES, simulator addresses | LocalStack SES Local AWS API emulation | Mailtrap Email Sandbox Hosted mail capture |
|---|---|---|---|---|
| Signed SNS feedback the row we rebuilt | Does this well:Signed, real format | Does this well:Real SNS | Partly, or with a caveat:Test messages only | Not built:Not built |
| Outcome mix at configurable rates the row we rebuilt | Does this well:Seeded presets | Partly, or with a caveat:Per-address scenarios | Not built:Not built | Not built:Not built |
| Reconciliation ground truth the row we rebuilt | Does this well:Per message ID | Not built:Not built | Partly, or with a caveat:Sent mail list | Partly, or with a caveat:Captured mail list |
| Load cost the row we rebuilt | Does this well:No per-message fee | Works, but on their terms:Billed per message | Partly, or with a caveat:SES v2 is paid | Works, but on their terms:Plan limits |
| Real SES behaviour we did not build this | Partly, or with a caveat:Modelled, not real | Does this well:It is SES | Partly, or with a caveat:Emulated | Not built:Not SES |
| Content and HTML checks we did not build this | Not built:Not built | Not built:Not built | Not built:Not built | Does this well:Spam and HTML |
| Other AWS services we did not build this | Not built:SES and SNS | Does this well:All of AWS | Does this well:Many services | Not built:Not built |
| Where it runs | Partly, or with a caveat:Your Laravel Cloud account | Works, but on their terms:AWS account | Does this well:Your machine | Works, but on their terms:Mailtrap service |
| Install today | Partly, or with a caveat:Untested on Cloud | Does this well:Available | Does this well:Available | Does this well:Available |
| Who operates it | Partly, or with a caveat:You do | Does this well:AWS does | Partly, or with a caveat:You do | Does this well:Mailtrap does |
Sesame is the narrow fit when all of these describe what you need.
These tools do work Sesame deliberately leaves out.
Sesame stays a simulator for staging feedback loops, not a mail-quality tool.
Be honest about it
The repository is public and open source. These are the steps, and you are welcome to spend the afternoon doing them by hand.
Read the proof-of-concept report in the Sesame repository: what was demonstrated, against what, and what is still open.
Install it from Scalpels with Postgres and a managed queue; it hibernates when idle. Push-to-deploy stays off; never deploy Sesame while a test is running, because that can lose sends from the run.
In staging only, point your SES endpoint and SNS certificate host pattern at Sesame, keep the production guard that refuses simulator config, and reconcile each run against its ground truth.
Or become a supporter, and Scalpels deploys it for you. It forks it, provisions exactly what it needs on your Laravel Cloud account, and deploys it. The app and the infrastructure are yours either way — the only question is who spends the afternoon.
Deploy Sesame as a supporterThese agencies and freelancers are standing by and ready to help.
Michigan
PHP and Laravel developer with 13 years of experience building and maintaining production apps. US Eastern, English.
USA
We run Scalpels, as well as a suite of other tools for developers and development teams.