EmailThing is a self-hosted email service providing web (PWA), CLI, and API interfaces for sending and receiving emails with custom domains. The system consists of a Bun-based backend API using PostgreSQL with Drizzle ORM, a React/Next.js PWA with Dexie IndexedDB for offline capabilities, and a CLI tool for management. It handles email storage via S3, authentication with JWT/sessions and passkeys, rate limiting with Redis, and integrates with external email services for sending while using Cloudflare Workers for reception. The architecture follows a monorepo pattern with clear separation: apps/api (backend server), apps/pwa (frontend interface), apps/cli (terminal tool), and shared packages for database, constants, and SDK. Key features include multi-user mailbox management, aliases, custom domain support, team collaboration, end-to-end encryption for sensitive data, and real-time synchronization between client and server. The system emphasizes user control over email infrastructure while providing modern web application experiences.
This is a production-grade web application for automated batch registration and management of OpenAI accounts. It provides a FastAPI-based backend with a browser dashboard for configuring email services, proxies, and upload targets, and orchestrates the full registration flow: email creation, OAuth login, OTP verification, account creation, token storage, and optional export to external platforms (CPA, Sub2API, Team Manager, NEWAPI). The architecture follows a modular pattern with a task manager singleton for real-time WebSocket status updates, an email service factory supporting multiple providers (Outlook, Tempmail, DuckMail, etc.), and a proxy management system with dynamic failover. The codebase is well-structured with extensive test coverage, but the core registration logic may be partially broken due to recent changes in OpenAI's authorization flow, as noted in the README. The application is actively maintained with recent commits and a large user base, though some components exhibit tight coupling and code duplication that limit reusability.