Skip to content

See what your apps sent.

Lightweight, self-hosted email log viewer. One container, all your apps, every email logged.

Why SeeSee?

You run multiple apps — WordPress site, a couple Python services, maybe a Node.js API, all sending email through different providers. When something goes wrong, you’re digging through various dashboards, server logs, and inboxes.

SeeSee gives you one place to see every email your apps sent. Point your apps at SeeSee via REST API or SMTP, and every outgoing email gets logged, searchable, and browsable …all without trying to do anything more than that.

Terminal window
# One container. That's it.
docker run -d -p 8080:8080 -p 2525:2525 \
-e SEESEE_ADMIN_PASSWORD=your-password \
-v seesee-data:/data \
ghcr.io/brandonjp/seesee-email:latest

Features

REST API

Log emails from any language with a simple POST request. Bearer token auth per app.

SMTP Ingest

Point your app’s SMTP settings at SeeSee to capture every message automatically.

Full-Text Search

SQLite FTS5 powers instant search across subjects, bodies, addresses, and error messages.

Multi-App

Each app gets its own API key and SMTP credentials. Filter and search per app.

Web Dashboard

Browse emails, view HTML previews, manage apps, and monitor stats — dark mode included.

Retention Policies

Automatic cleanup by count, age, or storage cap. Per-app overrides for fine-grained control.

Single Container

SQLite database, no external dependencies. Deploy with Docker or Docker Compose in seconds.

Provider Webhooks

Receive delivery status updates from Resend and SendGrid automatically.

GDPR Ready

Per-recipient data export, bulk delete, configurable body storage modes. Self-hosted — your data never leaves your server.

21 Themes

Dark mode, light mode, and 21 color themes — from Nord and Dracula to retro Mac OS 9 and Windows 95.

Keyboard Shortcuts

Power-user shortcuts for search (/), navigation (j/k), and quick actions.

Architecture

┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ WordPress │ │ Python App │ │ Node.js App │
│ (wp_mail) │ │ (smtplib) │ │ (fetch) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
│ REST API │ SMTP │ REST API
│ POST /api/v1/log │ Port 2525 │ POST /api/v1/log
▼ ▼ ▼
┌─────────────────────────────────────────────────────────┐
│ SeeSee │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────────┐ │
│ │ FastAPI │ │ SMTP │ │ Retention │ │
│ │ REST API │ │ Ingest │ │ Scheduler │ │
│ └──────┬──────┘ └──────┬──────┘ └────────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ SQLite + FTS5 │ │
│ │ /data/seesee.db │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Web UI (Jinja2 + Tailwind) │ │
│ │ Dashboard · Email List · Detail · App Mgmt │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘