AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Atlair Post is Atlair’s open-source email API (not Altair). Send product email from your own cloud, edit templates, get signed webhooks. A self-hostable Resend alternative.
Developer toolsTypeScript · VueGitHub @atlair-cloudOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
a simple email service
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Send email from your app with one HTTP request, through your own Amazon SES account.
atlair-mail is an open-source alternative to services like Resend or Plunk. You get a simple email
API, a web panel, templates, and webhooks, but the emails go out through your AWS account. Your
sending reputation stays yours, and you pay AWS directly instead of a markup: $0.10 per 1,000 emails
on SES's pay-as-you-go pricing, or $0.16 on the Essentials plan new SES accounts start on
(SES pricing). You can use the hosted version or run the whole
thing yourself.Read the full README ↗Send email from your app with one HTTP request, through your own Amazon SES account.
atlair-mail is an open-source alternative to services like Resend or Plunk. You get a simple email API, a web panel, templates, and webhooks, but the emails go out through your AWS account. Your sending reputation stays yours, and you pay AWS directly instead of a markup: $0.10 per 1,000 emails on SES's pay-as-you-go pricing, or $0.16 on the Essentials plan new SES accounts start on (SES pricing). You can use the hosted version or run the whole thing yourself.
curl -X POST https://api.atlair.cloud/mail/service/web/emails \
-H "Authorization: Bearer $ATLAIR_MAIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <[email protected]>",
"to": ["[email protected]"],
"subject": "It works",
"text": "Sent with Atlair Mail."
}'
Idempotency-Key) and scheduled sending.The API docs walk through each step, including setting up SES from scratch, and let you try every request in the browser.
You need Node 24+, pnpm, and Docker (for Postgres).
pnpm install
docker compose up -d --wait # starts Postgres on localhost:5432
cp apps/api/.env.example apps/api/.env
cp apps/worker/.env.example apps/worker/.env
Fill in the secrets in both .env files:
CREDENTIALS_ENCRYPTION_KEYS: 1: followed by the output of openssl rand -base64 32. Use the
same value in the API and the worker, since it encrypts your SES credentials.BETTER_AUTH_SECRET (API only): any long random string, for example openssl rand -base64 32.Then create the database tables and start everything, each in its own terminal:
export DATABASE_URL=postgres://atlair:atlair@localhost:5432/atlair_mail
pnpm --filter @atlair-mail/db migrate
pnpm --filter @atlair-mail/api dev # the API, on http://localhost:8080
pnpm --filter @atlair-mail/worker dev # sends queued emails in the background
pnpm --filter @atlair-mail/web dev # the panel, on http://localhost:5173
Open the panel at http://localhost:5173, sign up, connect SES, and create an API key. The API reference for your instance is at http://localhost:8080/docs/.
For production, compose.prod.yaml builds and runs the API and the worker as containers. Point them at
any Postgres database with a root .env file.
your app ──► API ──► Postgres (queue) ──► worker ──► Amazon SES ──► inbox
▲ │
└──── delivery, bounce, open ◄────┘
events ──► your webhooks
The API saves each email to Postgres and answers right away. A separate worker process picks emails off the queue, checks them (domain verified, recipient not suppressed), and hands them to SES. SES reports back what happened, and atlair-mail records it and forwards it to your webhooks. Postgres is the only thing you need to run besides the two processes: there is no Redis or separate queue.
apps/
api/ the HTTP API (Fastify)
worker/ sends queued emails and delivers webhooks
web/ the panel (Vue)
docs/ the API docs site (Scalar)
site/ the marketing page
packages/
db/ database schema and migrations (Drizzle)
providers/ the Amazon SES integration
templates/ turns templates into HTML and plain-text email (MJML)
core/ encryption for stored credentials
Run pnpm typecheck and pnpm test before opening a pull request. Tests that need a database
are skipped unless DATABASE_URL is set; see AGENTS.md for how to run them, plus the
code conventions this project follows.