Airmail

Create a configurable Apple email client with actions, snooze, and send later

KINDA · partial replacement
price $7.99/mo per seatsubscription / year $95.88estimated build time multi-dayreplaced by 0 people

The core loop is buildable, but a dependable replacement becomes a real weekend or multi-day project. For Airmail, create a configurable Apple email client with actions, snooze, and send later. The hard boundary is native apps, provider quirks, automation, push, and years of compatibility work, plus mail infrastructure, integrations, and client polish.

Build verification: not recorded. How we judge buildability

What you give up

  • native apps, provider quirks, automation, push, and years of compatibility work
  • mail hosting and deliverability
  • push on every platform
  • advanced team collaboration
  • provider-specific AI and search

Why people still pay

People still pay for Airmail because an email client can be rebuilt; operating a trusted mail service with excellent deliverability cannot. The recurring cost buys IMAP quirks, OAuth, MIME, threading, search, attachments, offline sync, notifications, secure storage, and provider changes, not just the visible interface.

Your build guide

The stack, security requirements, and agent rules for a focused replacement.

Before you start

  • Runtime and tools: Python, PySide6, imaplib, smtplib and SQLite FTS5, with credentials in the operating-system keyring.
  • Before starting: Python with PySide6, one authorized IMAP/SMTP account over TLS and its supported app-password or OAuth configuration.
01
Python, PySide6, imaplib, smtplib and SQLite FTS5, with credentials in the operating-system keyring
02
Data design: Store Mailbox, UIDValidity, MessageUID, CachedBody, PendingAction and OutboxAttempt; a UID is meaningful only within its mailbox generation. Keep local draft identity independent of server IDs.
03
Setup: Python with PySide6, one authorized IMAP/SMTP account over TLS and its supported app-password or OAuth configuration
engineering roadmap

Implementation plan

1

Phase 1

Pin the working slice and create its example input: Build a single-account desktop-accessible inbox that caches IMAP headers/text, searches offline, queues archive actions and sends reviewed drafts through the account's SMTP service. Confirm setup: Python with PySide6, one authorized IMAP/SMTP account over TLS and its supported app-password or OAuth configuration.

2

Phase 2

Implement persistence and write-time invariants before decorating the UI: Store Mailbox, UIDValidity, MessageUID, CachedBody, PendingAction and OutboxAttempt; a UID is meaningful only within its mailbox generation. Keep local draft identity independent of server IDs.

3

Phase 3

Connect the working view to real saved state. Treat cached mail as a replica. Queue server mutations with their mailbox generation/UID; reconcile ambiguous sends before retry, keep HTML inert and block remote images by default.

4

Phase 4

Expose the app-specific limits and recovery path in context: Use the existing Python/PySide6 IMAP/SMTP approach for the native client; keep credentials in the OS keyring. Snooze and send-later work only while its worker runs; HTML mail stays inert and remote images blocked.

5

Phase 5

Walk through this concrete acceptance case and preserve its exported evidence: Change the mailbox UID validity during a resync and interrupt an SMTP send after upload; rebuild the affected cache and mark the send outcome unknown rather than sending a duplicate. Finish the README and backup/restore instructions; report unfinished capabilities explicitly.

the pro prompt
download AGENTS.md
Build me a local desktop mail triage client for one IMAP mailbox as a limited substitute for Airmail. Requirements:

- Use Python, PySide6, imaplib, smtplib, and SQLite FTS5. Connect to one user-configured IMAP and SMTP account over TLS; keep credentials in the OS keyring rather than the database.
- Sync inbox headers and plain-text bodies into a local SQLite cache. Show sender, subject, date, unread status, and an offline search box.
- Keyboard actions: next, previous, mark read, archive to a configured folder, reply, and compose. Show a pending-action queue and retry failures without hiding server state.
- Add snooze by moving a message to a configured folder and restoring it when the app is running at the selected time. Add send later with a local outbox that sends only while the app is running; show unsent count on quit.
- Render plain text by default. For HTML-only messages, strip active content and block remote images; let me open the original in my existing mail client if needed.
- Send through SMTP with a confirmation screen showing recipients and attachments. Keep drafts local until the server accepts the message.
- No accounts beyond this mailbox, telemetry, universal OAuth support, multi-account inbox, perfect threading, or push guarantees. README: provider setup, app password or OAuth limits, cache path, and queue recovery.

EDITORIAL IMPLEMENTATION CONTRACT
Working slice: Build a single-account desktop-accessible inbox that caches IMAP headers/text, searches offline, queues archive actions and sends reviewed drafts through the account's SMTP service.
Data and invariants: Store Mailbox, UIDValidity, MessageUID, CachedBody, PendingAction and OutboxAttempt; a UID is meaningful only within its mailbox generation. Keep local draft identity independent of server IDs.
Boundary and recovery: Use the existing Python/PySide6 IMAP/SMTP approach for the native client; keep credentials in the OS keyring. Snooze and send-later work only while its worker runs; HTML mail stays inert and remote images blocked.
Acceptance walkthrough: Change the mailbox UID validity during a resync and interrupt an SMTP send after upload; rebuild the affected cache and mark the send outcome unknown rather than sending a duplicate.
Record actual dependency versions, permissions and provider access in setup instructions. Preserve originals, expose partial failures and document backup/restore. These are acceptance requirements, not a claim of a completed or production-certified build. Add the domain, recovery and acceptance rules to AGENTS.md so future edits preserve them.

$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy or download AGENTS.md

share on X ↗

Alternatives to building your own

Apple MailThe client already on the Mac has send-later, reminders and swipe actions; customization stops where Apple says.$0free↗Edison MailCustom swipes, snooze and scheduled sending without a subscription; optional shopping-data research pays the bill.$0free↗Spark FreeSnooze, scheduled sends and configurable actions for free; read receipts and team features still collect rent.$0free↗

all 3 free alternatives to Airmail →· no votes, no pay-to-list · just what's real

Airmail pricing

planmonthlyannual (per mo)what you get
free$0/user$0/user1 email account; basic inbox management onlyAirmail's current help center describes the free version as limited to one account.
airmail pro$7.99/user$3.33/userMultiple accounts; subscription shared across Apple devices on the same Apple IDUSD prices are from the live US Apple App Store listing. Airmail's own help pages publish conflicting promotional/regional figures, and the vendor says prices vary by country and promotion.

free tier1 email account; basic inbox management

billingmonthly + annual; auto-renews through the Apple App Store unless canceled at least 24 hours before renewal

hidden costsStorefront and promotional pricing varies. A separate AI Composer in-app purchase is listed in some storefronts and is not reliably priced on the US product page.

pricing sources checked 2026-08-12 · pricing source ↗

Questions about Airmail

Can you build your own Airmail with AI?

Partly. The core loop is buildable, but a dependable replacement becomes a real weekend or multi-day project. For Airmail, create a configurable Apple email client with actions, snooze, and send later. The hard boundary is native apps, provider quirks, automation, push, and years of compatibility work, plus mail infrastructure, integrations, and client polish.

What does the Airmail build prompt cover?

The prompt starts with this scope: Build a single-account desktop-accessible inbox that caches IMAP headers/text, searches offline, queues archive actions and sends reviewed drafts through the account's SMTP service. Full-product capabilities excluded from the comparison include: native apps, provider quirks, automation, push, and years of compatibility work; mail hosting and deliverability; push on every platform. Follow the implementation plan and its prerequisites before expanding the build.

How do I use the prompt, AGENTS.md and agent skills?

Start with the Airmail prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.

How long will this Airmail project take?

The catalogue estimate is multi-day for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.

What would I give up by replacing Airmail?

native apps, provider quirks, automation, push, and years of compatibility work; mail hosting and deliverability; push on every platform; advanced team collaboration; provider-specific AI and search. People still pay for Airmail because an email client can be rebuilt; operating a trusted mail service with excellent deliverability cannot. The recurring cost buys IMAP quirks, OAuth, MIME, threading, search, attachments, offline sync, notifications, secure storage, and provider changes, not just the visible interface.

What price is this guide comparing against?

The recorded Airmail Pro plan is $7.99/mo per seat (monthly per user), checked 2026-08-12. Check the linked pricing source before buying. Building your own also has hosting, API and maintenance costs; the recorded amount is not a guaranteed saving.

What can I use instead of building Airmail?

Apple Mail: The client already on the Mac has send-later, reminders and swipe actions; customization stops where Apple says. Edison Mail: Custom swipes, snooze and scheduled sending without a subscription; optional shopping-data research pays the bill. Spark Free: Snooze, scheduled sends and configurable actions for free; read receipts and team features still collect rent. Compare all listed options at https://howtovibecodeit.dev/airmail/alternatives. Check each option's license, hosting needs and feature limits.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

last week:100 Questions · KINDA1of10 · KINDA1Password · KINDA+1090 more

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.