Goal
Ship a proper web admin UI for the mail server so non-Stacks users (and Stacks users who prefer it) can log in, read their mailbox, and manage mailboxes from a browser — without needing the Stacks dashboard or a third-party mail client.
Today, mailboxes are auto-created from ./config/mail.ts and managed via the mail user / mail user:local CLI. There's a devtools surface but no shippable end-user web UI.
Scope
- Auth / login — users log in with their mailbox credentials (same accounts in
/opt/mail/smtp.db).
- Read mailbox — list folders + messages, view a message (the SMTP API already queries S3 for message bodies, so this is a read layer over the existing API).
- Manage mailboxes — create new mailboxes from the UI (today that's CLI-only via
mail user create / auto-provisioned from config/mail.ts).
Deployment
- Reuse the existing mail-server EC2 instance (
i-0e365c6bd31da4678, mail.stacksjs.com) — no new infra. We already pay for that box for SMTP/IMAP.
- Run a bun webserver there serving an stx webapp alongside the mail daemon.
Priority / context
- Lower priority for Stacks users — the Stacks dashboard already handles mailbox management.
- Matters for non-Stacks adopters who want a self-hosted mail product with a usable web front-end out of the box.
Notes
- Per repo conventions: stx for templating, crosswind for styling.
- Mailbox storage is Maildir on disk + S3 for message bodies; the API layer to read messages already exists, so the UI is primarily a front-end + thin auth/session layer.
Goal
Ship a proper web admin UI for the mail server so non-Stacks users (and Stacks users who prefer it) can log in, read their mailbox, and manage mailboxes from a browser — without needing the Stacks dashboard or a third-party mail client.
Today, mailboxes are auto-created from
./config/mail.tsand managed via themail user/mail user:localCLI. There's a devtools surface but no shippable end-user web UI.Scope
/opt/mail/smtp.db).mail user create/ auto-provisioned fromconfig/mail.ts).Deployment
i-0e365c6bd31da4678,mail.stacksjs.com) — no new infra. We already pay for that box for SMTP/IMAP.Priority / context
Notes