π Privacy-First Email Client - Built for Speed, Security, and Seamless Integration
A lightweight, open-source email client built for privacy, speed, and seamless integration within the Aether Office ecosystem. Featuring a complete authentication system, hybrid Go/TypeScript architecture, and enterprise-ready monorepo design.
π Quick Start β’ π What's New β’ π Current Status β’ π οΈ Tech Stack β’ π Architecture β’ π€ Contributing
Aether Mail is a privacy-first email client designed for users who value security, speed, and seamless integration. Built as part of the Aether Office ecosystem, it offers a modern, feature-rich email experience with complete data ownership.
- π Hybrid Architecture - Go 1.25+ backend + TypeScript 5 frontend
- π Complete Authentication System - JWT-based system with login/register forms and context
- β‘ High-Performance Backend - Go-based server with Gin + Prisma + PostgreSQL
- π¨ Modern Frontend - Next.js 16 + React 19 + shadcn/ui component library
- ποΈ Enterprise-Ready Design - Scalable, secure, and maintainable architecture
- π± Cross-Platform - Web, Desktop (Electron), Mobile (Capacitor)
- π Privacy-First - Built with security and data ownership in mind
- π οΈ Developer-Friendly - Hot reload, TypeScript strict mode, pnpm workspaces
- β Hybrid Monorepo Architecture - Go backend + TypeScript frontend workspaces
- β Complete Authentication System - JWT with login/register forms and React context
- β Go Backend API - High-performance Gin API with Prisma + PostgreSQL
- β Next.js 16 Frontend - Modern React 19 with shadcn/ui + Tailwind CSS
- β Database Layer - Prisma ORM with PostgreSQL and user models
- β Electron Desktop App - Native desktop application
- β Capacitor Mobile Support - Mobile companion app
- β VSCode Extension - Email integration in VSCode
- β Browser Extension - Chrome/Firefox extension
- β Snap Package - Linux snap package
- β JWT Authentication - Complete implementation with refresh tokens
- β Password Security - bcrypt hashing for secure storage
- β Protected Routes - Route-based authentication guards
- β Session Management - Secure token persistence
β In Development: Privacy-first email client with complete authentication system.
- β Complete Authentication System - JWT with login/register forms and React context
- β Hybrid Monorepo Architecture - Go backend + TypeScript frontend workspaces
- β Go Backend Server - High-performance Gin API with Prisma + PostgreSQL
- β Next.js 16 Frontend - Modern React 19 with shadcn/ui + Tailwind CSS
- β Database Layer - Prisma ORM with PostgreSQL and user models
- β Electron Desktop App - Native desktop application framework
- β Node.js SDK Package - Universal TypeScript SDK with examples
- β Message Handling - Email message processing system
- β Development Environment - Hot reload, TypeScript strict mode, Go modules
- β Docker Support - Container configuration for deployment
- β pnpm Workspaces - Monorepo management
- User Management Dashboard - Complete CRUD interface for user administration
- Email Client Features - Compose, read, send emails
- Folder Management - Email organization and filtering
- Contact Management - Address book integration
- Settings & Preferences - User customization options
- SMTP/IMAP Integration - Connect to external email providers
- End-to-End Encryption - Secure email content
- Offline Support - Local email storage and sync
- Email Templates - Reusable email templates
- Advanced Search - Full-text search capabilities
- Calendar Integration - CalDAV support
- Go 1.25.0 or higher (for backend)
- Node.js 18.0.0 or higher (for frontend)
- pnpm 8.0.0 or higher (recommended package manager)
- PostgreSQL 14.0 or higher (for database)
- Docker (optional, for deployment)
- Make (for command shortcuts - included with most systems)
-
Clone the repository
git clone https://github.com/skygenesisenterprise/aether-mail.git cd aether-mail -
Quick start (recommended)
# Install dependencies pnpm install # Setup environment cp .env.example .env # Start development servers pnpm dev
-
Manual setup
# Install Go dependencies cd server && go mod download && cd .. # Install Node.js dependencies pnpm install # Environment setup cp .env.example .env # Database initialization pnpm db:generate && pnpm db:migrate # Start development servers pnpm dev
Once running, you can access:
- Frontend: http://localhost:3000
- API Server: http://localhost:8080
- Health Check: http://localhost:8080/health
- Prisma Studio: http://localhost:5556
# π Development
pnpm dev # Start all services (frontend + backend)
pnpm dev:frontend # Frontend only (port 3000)
pnpm dev:backend # Backend only (port 8080)
pnpm dev:electron # Electron desktop app
# ποΈ Building & Production
pnpm build # Build all packages
pnpm build:frontend # Frontend production build
pnpm build:electron # Electron production build
pnpm build:backend # Backend production build
pnpm start # Start production servers
# ποΈ Database
pnpm db:studio # Open Prisma Studio
pnpm db:migrate # Run migrations
pnpm db:generate # Generate Prisma client
pnpm db:seed # Seed development data
# π§ Code Quality & Testing
pnpm lint # Lint all packages
pnpm lint:fix # Auto-fix linting issues
pnpm typecheck # Type check all packages
pnpm test # Run all tests
# π οΈ Utilities
pnpm clean # Clean build artifacts
pnpm reset # Reset project to clean stateNext.js 16 + React 19 + TypeScript 5
βββ π¨ Tailwind CSS + shadcn/ui (Styling & Components)
βββ π JWT Authentication (Complete Implementation)
βββ π£οΈ Next.js App Router (Routing)
βββ π TypeScript Strict Mode (Type Safety)
βββ π React Context (State Management)
βββ π§ ESLint + Prettier (Code Quality)
Go 1.25+ + Gin Framework
βββ ποΈ Prisma + PostgreSQL (Database Layer)
βββ π JWT Authentication (Complete Implementation)
βββ π‘οΈ Middleware (Security, CORS, Logging)
βββ π HTTP Router (Gin Router)
βββ π¦ JSON Serialization (Native Go)
βββ π Structured Logging (Pino)
Electron + Capacitor + TypeScript
βββ π» Electron Desktop App (Native)
βββ π± Capacitor Mobile (iOS/Android)
βββ π§ VSCode Extension
βββ π§© Browser Extension
βββ π― Snap Package (Linux)
PostgreSQL + Prisma
βββ ποΈ Schema Management (Auto-migration)
βββ π Type-Safe Queries
βββ π Connection Pooling (Performance)
βββ π€ User Models (Complete Implementation)
βββ π Seed Scripts (Development Data)
pnpm Workspaces + Go Modules
βββ π¦ app/ (Next.js Frontend - TypeScript)
βββ βοΈ server/ (Gin API - Go)
βββ π» electron/ (Desktop App - TypeScript)
βββ π§© package/ (Package Ecosystem - TypeScript)
β βββ node/ (Node.js SDK)
β βββ vscode/ (VSCode Extension)
β βββ extension/ (Browser Extension)
β βββ snap/ (Snap Package)
βββ π¬ messages/ (Message Handling - TypeScript)
βββ π³ docker/ (Container Configuration)
aether-mail/
βββ app/ # Next.js 16 Frontend Application (TypeScript)
β βββ components/ # React components with shadcn/ui
β β βββ ui/ # UI component library
β β βββ login-form.tsx # Authentication forms
β β βββ Sidebar.tsx # Navigation components
β βββ context/ # React contexts
β β βββ JwtAuthContext.tsx # Authentication state
β βββ login/ # Authentication pages
β βββ register/ # User registration
β βββ inbox/ # Email inbox view
β βββ compose/ # Email composition
β βββ lib/ # Utility functions
β βββ styles/ # Tailwind CSS styling
βββ server/ # Go Backend Server
β βββ cmd/
β β βββ server/
β β βββ main.go # CLI entry point
β βββ src/
β β βββ config/ # Database and server configuration
β β βββ controllers/ # HTTP request handlers (auth, users, messages)
β β βββ middleware/ # Gin middleware (auth, validation, monitoring)
β β βββ models/ # Data models and structs
β β βββ routes/ # API route definitions
β β βββ services/ # Business logic (auth, users, messages)
β β βββ tests/ # Unit and integration tests
β βββ main.go # Main server entry point
β βββ go.mod # Go modules file
β βββ go.sum # Go modules checksum
βββ electron/ # Electron Desktop App (TypeScript)
β βββ src/
β β βββ main/ # Electron main process
β β βββ renderer/ # Electron renderer process
β β βββ preload/ # Preload scripts
β βββ package.json # Electron-specific dependencies
βββ package/ # Package Ecosystem
β βββ node/ # Node.js/TypeScript SDK
β β βββ src/ # TypeScript source
β β βββ examples/ # Usage examples
β β βββ README.md # Package docs
β βββ vscode/ # VSCode Extension
β βββ extension/ # Browser Extension
β βββ snap/ # Snap Package
βββ messages/ # Core Message Services (TypeScript)
βββ prisma/ # Database Schema & Migrations
β βββ schema.prisma # Database schema definition
β βββ config.ts # Prisma configuration
βββ docker/ # Docker Configuration
βββ public/ # Static Assets
βββ docs/ # Documentation
βββ tests/ # Test Suites
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Next.js App β β Gin API β β PostgreSQL β
β (Frontend) βββββΊβ (Backend) βββββΊβ (Database) β
β Port 3000 β β Port 8080 β β Port 5432 β
β TypeScript β β Go β β β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
JWT Tokens API Endpoints User/Message Data
React Context Authentication Prisma ORM
shadcn/ui Components Business Logic Auto-migrations
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β Electron App β β Email Servers β
β (Desktop) β β (SMTP/IMAP) β
β Native UI β β External Providersβ
β System Tray β β Message Sync β
βββββββββββββββββββ ββββββββββββββββββββ
- β Hybrid Monorepo Setup - Go backend + TypeScript frontend workspaces
- β Authentication System - Complete JWT implementation with forms
- β Frontend Framework - Next.js 16 + React 19 + shadcn/ui
- β Go Backend API - Gin with authentication endpoints
- β Database Layer - Prisma with PostgreSQL and user models
- β Development Environment - TypeScript strict mode, Go modules, hot reload
- π Email Client UI - Inbox, compose, read, send emails
- π Folder Management - Email organization and filtering
- π Contact Management - Address book integration
- π User Dashboard - Complete user settings interface
- π Settings & Preferences - User customization options
- π Search Functionality - Email search and filtering
- π SMTP/IMAP Integration - Connect to external email providers
- π Email Sync - Synchronization with external accounts
- π Multi-Account Support - Multiple email accounts
- π Offline Support - Local email storage and sync
- π Calendar Integration - CalDAV support
- π End-to-End Encryption - Secure email content
- π Advanced Security - Two-factor authentication
- π Audit Logging - Security event logging
- π Enterprise Features - Team management, shared folders
- π Mobile Application - Native iOS/Android apps
# New developer setup
pnpm install
cp .env.example .env
pnpm dev
# Daily development
pnpm dev # Start working (Go + TypeScript)
pnpm lint:fix # Fix code issues
pnpm typecheck # Verify types
pnpm test # Run tests
# Before committing
pnpm format # Format code
pnpm lint # Check code quality
pnpm typecheck # Verify typescd server
go run main.go # Start Go server
go test ./... # Run Go tests
go fmt ./... # Format Go code
go mod tidy # Clean dependenciespnpm dev:frontend # Frontend only
pnpm lint # Check code quality
pnpm typecheck # Verify typespnpm dev:electron # Electron desktop app
pnpm build:electron # Build Electron app- TypeScript Strict Mode - All frontend code must pass strict type checking
- Go Best Practices - Follow Go conventions for backend code
- Conventional Commits - Use standardized commit messages
- Component Structure - Follow established patterns for React components
- API Design - RESTful endpoints with proper HTTP methods
- Error Handling - Comprehensive error handling and logging
- Security First - Validate all inputs and implement proper authentication
The authentication system is fully implemented with Go backend and TypeScript frontend:
- JWT Tokens - Secure token-based authentication with refresh mechanism
- Login/Register Forms - Complete user authentication flow with validation
- Auth Context - Global authentication state management in React
- Protected Routes - Route-based authentication guards
- Go API Endpoints - Complete authentication API with Gin framework
- Password Security - bcrypt hashing for secure password storage
- Session Management - LocalStorage-based session persistence
// Go Backend Registration Process
1. User submits registration β API validation
2. Password hashing with bcrypt β Database storage
3. JWT tokens generated β Client receives tokens
4. Auth context updates β User logged in
// Go Backend Login Process
1. User submits credentials β API validation
2. Password verification β JWT token generation
3. Tokens stored β Auth context updated
4. Redirect to dashboard β Protected route access
// Token Refresh
1. Background token refresh β Automatic renewal
2. Invalid tokens β Redirect to login
3. Session expiration β Clean logoutWe're looking for contributors to help build this privacy-first email client! Whether you're experienced with Go, TypeScript, Electron, mobile development, or email protocols, there's a place for you.
- Fork the repository and create a feature branch
- Check the issues for tasks that need help
- Join discussions about architecture and features
- Start small - Documentation, tests, or minor features
- Follow our code standards and commit guidelines
- Go Backend Development - API endpoints, business logic, security
- TypeScript Frontend Development - React components, UI/UX design
- Electron Development - Desktop app features and native integration
- Mobile Development - Capacitor/iOS/Android apps
- Database Design - Schema development, migrations, optimization
- Email Protocol Experts - SMTP, IMAP implementation
- Security Specialists - Authentication, encryption
- DevOps Engineers - Docker, deployment, CI/CD
- Documentation - API docs, user guides, tutorials
- Choose an area - Core app, frontend, or specific package
- Read the docs - Understand project conventions
- Create a branch with a descriptive name
- Implement your changes following our guidelines
- Test thoroughly in all relevant environments
- Submit a pull request with clear description and testing
- Address feedback from maintainers and community
- π Documentation - Comprehensive guides and API docs
- π GitHub Issues - Bug reports and feature requests
- π‘ GitHub Discussions - General questions and ideas
- π§ Email - support@skygenesisenterprise.com
When reporting bugs, please include:
- Clear description of the problem
- Steps to reproduce
- Environment information (Go version, Node.js version, OS, etc.)
- Error logs or screenshots
- Expected vs actual behavior
| Component | Status | Technology | Notes |
|---|---|---|---|
| Hybrid Architecture | β Working | Go + TypeScript | Monorepo with pnpm workspaces |
| Authentication System | β Working | JWT (Go/TS) | Full implementation with forms |
| Go Backend API | β Working | Gin + Prisma | High-performance with PostgreSQL |
| Frontend Framework | β Working | Next.js 16 + React 19 | shadcn/ui + Tailwind CSS |
| Electron Desktop | β Working | Electron + TypeScript | Desktop application framework |
| Database Layer | β Working | Prisma + PostgreSQL | Auto-migrations + user models |
| Node.js SDK | β Working | TypeScript | Universal client with examples |
| Email Client UI | π In Progress | TypeScript | Inbox, compose, read, send |
| Folder Management | π Planned | TypeScript | Email organization |
| Contact Management | π Planned | TypeScript | Address book integration |
| SMTP/IMAP Integration | π Planned | Go | External email providers |
| End-to-End Encryption | π Planned | Go/TypeScript | Secure email content |
| Mobile App | π Planned | Capacitor | Native iOS/Android |
Development led by Sky Genesis Enterprise
We're looking for sponsors and partners to help accelerate development of this open-source email client project.
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Sky Genesis Enterprise
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- Sky Genesis Enterprise - Project leadership
- Go Community - High-performance programming language and ecosystem
- Gin Framework - Lightweight HTTP web framework
- Prisma Team - Modern database toolkit
- Next.js Team - Excellent React framework
- React Team - Modern UI library
- shadcn/ui - Beautiful component library
- Electron Team - Cross-platform desktop app framework
- pnpm - Fast, disk space efficient package manager
- Make - Universal build automation and command interface
- Docker Team - Container platform and tools
- Open Source Community - Tools, libraries, and inspiration
β Star This Repo β’ π Report Issues β’ π‘ Start a Discussion
π Privacy-First Email Client - Built for Speed, Security, and Seamless Integration!
Made with β€οΈ by the Sky Genesis Enterprise team
Building a privacy-first email client with complete authentication system and cross-platform support