Skip to content

skygenesisenterprise/aether-mailer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

332 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ Aether Mailer

License Go Gin TypeScript Next.js React GitHub App

πŸ”₯ Modern Mail Server Foundation - Evolved Hybrid Architecture with Complete Package Ecosystem

A next-generation mail server foundation that has evolved significantly from its initial hybrid architecture. Now featuring a complete authentication system, comprehensive package ecosystem, GitHub Marketplace integration, and enterprise-ready monorepo design with enhanced capabilities.

πŸš€ Quick Start β€’ πŸ“‹ What's New β€’ πŸ“Š Current Status β€’ πŸ› οΈ Tech Stack β€’ πŸ“¦ Package Ecosystem β€’ πŸ“ Architecture β€’ 🀝 Contributing

GitHub stars GitHub forks GitHub issues


🌟 What is Aether Mailer?

Aether Mailer is a comprehensive mail server foundation that has evolved dramatically from its initial concept. Starting as a hybrid Go/TypeScript architecture, it has grown into a complete ecosystem featuring authentication, package SDKs, GitHub integration, and enterprise-ready capabilities.

🎯 Our Evolved Vision

  • πŸš€ Enhanced Hybrid Architecture - Go 1.21+ backend + TypeScript 5 frontend + Package Ecosystem
  • πŸ“¦ Complete Package SDKs - GitHub App, Go SDK, Node.js SDK for maximum integration
  • πŸ” Complete Authentication System - JWT-based system with login/register forms and context
  • ⚑ High-Performance Backend - Go-based server with GORM + PostgreSQL integration
  • 🎨 Modern Frontend - Next.js 16 + React 19.2.1 + shadcn/ui component library
  • πŸ”— GitHub Marketplace Integration - Verified GitHub App for release orchestration
  • πŸ—οΈ Enterprise-Ready Design - Scalable, secure, and maintainable architecture
  • πŸ“š Comprehensive Documentation - Package-specific docs and API references
  • πŸ› οΈ Developer-Friendly - 60+ Make commands, hot reload, TypeScript strict mode

πŸ†• What's New - Recent Evolution

🎯 Major Additions in v1.0+

πŸ“¦ Complete Package Ecosystem (NEW)

  • βœ… GitHub App Package - Verified Marketplace application for release orchestration
  • βœ… Go SDK Package - Native Go client library and CLI tools
  • βœ… Node.js SDK Package - Universal TypeScript SDK for Node.js and browser
  • βœ… Package Documentation - Comprehensive docs for each package

πŸ”— GitHub Integration (NEW)

  • βœ… Verified GitHub App - Release intelligence and workflow orchestration
  • βœ… Multi-Target Release Detection - Support for mobile, desktop, cloud, SDK releases
  • βœ… Workflow Orchestration - Automatic GitHub Actions triggering
  • βœ… Aether Mailer Notifications - Integrated notification system

πŸ—οΈ Enhanced Architecture (IMPROVED)

  • βœ… Package-Based Structure - Modular design with clear separation
  • βœ… Cross-Package Integration - Seamless interaction between packages
  • βœ… Docker Deployment - Production-ready containerization for all packages
  • βœ… Security Enhancements - Rate limiting, input validation, CORS

πŸ“š Documentation Evolution (IMPROVED)

  • βœ… Package-Specific READMEs - Detailed documentation for each component
  • βœ… Architecture Overviews - Comprehensive system documentation
  • βœ… Integration Guides - Step-by-step setup instructions
  • βœ… API References - Complete API documentation

πŸ“Š Current Status

βœ… Rapid Evolution: From basic hybrid architecture to complete ecosystem with GitHub Marketplace integration.

βœ… Currently Implemented

πŸ—οΈ Core Foundation

  • βœ… 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 GORM + PostgreSQL
  • βœ… Next.js 16 Frontend - Modern React 19.2.1 with shadcn/ui + Tailwind CSS v4
  • βœ… Database Layer - GORM with PostgreSQL and user models
  • βœ… CLI Tools - Complete command-line interface for server management

πŸ“¦ Package Ecosystem (NEW)

  • βœ… GitHub App Package - Verified Marketplace app with release orchestration
  • βœ… Go SDK Package - Native Go client library and CLI tools
  • βœ… Node.js SDK Package - Universal TypeScript SDK with examples
  • βœ… Package Documentation - Comprehensive docs for all packages

πŸ”— GitHub Integration (NEW)

  • βœ… Release Type Detection - Intelligent pattern matching for all release types
  • βœ… Multi-Target Support - Handle complex releases (+mobile+desktop)
  • βœ… Workflow Orchestration - Automatic GitHub Actions triggering
  • βœ… Aether Mailer Integration - Complete notification system

πŸ› οΈ Development Infrastructure

  • βœ… Development Environment - Hot reload, TypeScript strict mode, Go modules
  • βœ… Docker Deployment - Production-ready containers for all packages
  • βœ… Security Implementation - Rate limiting, validation, security headers
  • βœ… Structured Logging - Pino-based logging with correlation

πŸ”„ In Development

  • User Management Dashboard - Complete CRUD interface for user administration
  • Domain Management - Multi-domain configuration and management
  • Security Enhancements - Advanced rate limiting, input validation, CORS
  • API Documentation - Comprehensive API documentation and testing
  • Testing Suite - Unit and integration tests across all packages

πŸ“‹ Planned Features

  • Mail Protocol Engines - SMTP, IMAP, POP3 implementation in Go
  • Web Administration Dashboard - Complete server management interface
  • Email Processing - Queue system and delivery mechanisms with Go goroutines
  • Advanced Security - Spam filtering, virus scanning, encryption
  • Mobile Application - React Native companion app

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Go 1.21.0 or higher (for backend)
  • Node.js 18.0.0 or higher (for frontend)
  • pnpm 9.0.0 or higher (recommended package manager)
  • PostgreSQL 14.0 or higher (for database)
  • Docker (optional, for package deployment)
  • Make (for command shortcuts - included with most systems)

πŸ”§ Installation & Setup

  1. Clone the repository

    git clone https://github.com/skygenesisenterprise/aether-mailer.git
    cd aether-mailer
  2. Quick start (recommended)

    # One-command setup and start
    make quick-start
  3. Manual setup

    # Install Go dependencies
    cd server && go mod download && cd ..
    
    # Install Node.js dependencies
    make install
    
    # Environment setup
    make env-dev
    
    # Database initialization
    make db-migrate
    
    # Start development servers
    make dev

🌐 Access Points

Once running, you can access:

🎯 Enhanced Make Commands

# πŸš€ Quick Start & Development
make quick-start          # Install, migrate, and start dev servers
make dev                 # Start all services (frontend + backend)
make dev-frontend        # Frontend only (port 3000)
make dev-backend         # Backend only (port 8080)

# πŸ“¦ Package Development (NEW)
make dev-github          # Start GitHub App development
make build-packages      # Build all packages
make test-packages       # Test all packages

# πŸ”§ Go Backend Commands
make go-server           # Start Go server directly
make go-build            # Build Go binary
make go-test             # Run Go tests

# πŸ—οΈ Building & Production
make build               # Build all packages
make start               # Start production servers

# πŸ—„οΈ Database
make db-studio           # Open Prisma Studio
make db-migrate          # Run migrations
make db-seed             # Seed development data

# πŸ”§ Code Quality & Testing
make lint                # Lint all packages
make typecheck           # Type check all packages
make format              # Format code with Prettier

# πŸ› οΈ Utilities
make help                # Show all available commands
make status              # Show project status
make health              # Check service health

πŸ’‘ Tip: Run make help to see all 60+ available commands organized by category.


πŸ› οΈ Tech Stack

🎨 Frontend Layer

Next.js 16 + React 19.2.1 + TypeScript 5
β”œβ”€β”€ 🎨 Tailwind CSS v4 + 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)

βš™οΈ Backend Layer

Go 1.21+ + Gin Framework
β”œβ”€β”€ πŸ—„οΈ GORM + PostgreSQL (Database Layer)
β”œβ”€β”€ πŸ” JWT Authentication (Complete Implementation)
β”œβ”€β”€ πŸ›‘οΈ Middleware (Security, CORS, Logging)
β”œβ”€β”€ 🌐 HTTP Router (Gin Router)
β”œβ”€β”€ πŸ“¦ JSON Serialization (Native Go)
└── πŸ“Š Structured Logging (Zerolog)

πŸ“¦ Package Ecosystem Layer (NEW)

Multi-Language Package SDKs
β”œβ”€β”€ πŸš€ GitHub App (TypeScript + Fastify)
β”‚   β”œβ”€β”€ Release Orchestration
β”‚   β”œβ”€β”€ Webhook Security
β”‚   └── Aether Mailer Integration
β”œβ”€β”€ 🐹 Go SDK (Native Go)
β”‚   β”œβ”€β”€ High-Performance Client
β”‚   β”œβ”€β”€ CLI Tools
β”‚   └── Go Modules Support
└── πŸ“¦ Node.js SDK (TypeScript)
    β”œβ”€β”€ Universal Client (Node.js + Browser)
    β”œβ”€β”€ Authentication Handling
    └── Comprehensive Examples

πŸ—„οΈ Data Layer

PostgreSQL + GORM
β”œβ”€β”€ πŸ—οΈ Schema Management (Auto-migration)
β”œβ”€β”€ πŸ” Query Builder (Type-Safe Queries)
β”œβ”€β”€ πŸ”„ Connection Pooling (Performance)
β”œβ”€β”€ πŸ‘€ User Models (Complete Implementation)
└── πŸ“ˆ Seed Scripts (Development Data)

πŸ—οΈ Evolved Monorepo Infrastructure

Make + pnpm Workspaces + Go Modules + Package Ecosystem
β”œβ”€β”€ πŸ“¦ app/ (Next.js Frontend - TypeScript)
β”œβ”€β”€ βš™οΈ server/ (Gin API - Go)
β”œβ”€β”€ πŸ› οΈ cli/ (Command Line Tools - TypeScript)
β”œβ”€β”€ πŸ”§ tools/ (Development Utilities - TypeScript)
β”œβ”€β”€ πŸ“š services/ (Core Mail Services - TypeScript)
β”œβ”€β”€ πŸ—‚οΈ routers/ (API Routing - TypeScript)
β”œβ”€β”€ πŸ“¦ package/ (Package Ecosystem - NEW)
β”‚   β”œβ”€β”€ github/ (GitHub App - TypeScript)
β”‚   β”œβ”€β”€ golang/ (Go SDK - Go)
β”‚   └── node/ (Node.js SDK - TypeScript)
└── 🐳 docker/ (Container Configuration)

πŸ“¦ Package Ecosystem

🎯 New Package Architecture

The project has evolved to include a comprehensive package ecosystem:

package/
β”œβ”€β”€ github/                    # πŸš€ GitHub App for Release Orchestration
β”‚   β”œβ”€β”€ Release Detection     # Intelligent pattern matching
β”‚   β”œβ”€β”€ Workflow Orchestration # GitHub Actions integration
β”‚   └── Aether Mailer Integration
β”œβ”€β”€ golang/                   # 🐹 Go SDK & CLI Tools
β”‚   β”œβ”€β”€ Native Go Client      # High-performance HTTP client
β”‚   └── CLI Tools            # Command-line utilities
└── node/                     # πŸ“¦ Node.js/TypeScript SDK
    β”œβ”€β”€ Universal Client      # Node.js + Browser support
    └── Usage Examples        # Comprehensive examples

πŸš€ GitHub App Package

Purpose: Verified GitHub Marketplace application for release orchestration.

Key Features:

  • βœ… Release type detection (general, mobile, desktop, cloud, sdk)
  • βœ… Multi-target release support (+mobile+desktop)
  • βœ… Workflow orchestration with GitHub Actions
  • βœ… Aether Mailer notification integration
  • βœ… Webhook security with HMAC-SHA256
  • βœ… Docker deployment ready

Usage:

cd package/github
pnpm install && pnpm dev
# or
docker-compose up -d

🐹 Go SDK Package

Purpose: Native Go SDK and CLI tools for Aether Mailer integration.

Key Features:

  • βœ… Native Go client library
  • βœ… CLI tools for server management
  • βœ… High-performance HTTP client
  • βœ… Type-safe Go structs
  • βœ… Go modules support

Usage:

import "github.com/skygenesisenterprise/aether-mailer/package/golang"

client := golang.NewClient("http://localhost:8080")
err := client.SendEmail(email)

πŸ“¦ Node.js SDK Package

Purpose: Universal TypeScript SDK for Node.js and browser environments.

Key Features:

  • βœ… Universal client (Node.js + Browser)
  • βœ… TypeScript strict mode
  • βœ… Authentication handling
  • βœ… Email sending capabilities
  • βœ… Comprehensive examples

Usage:

import { AetherMailerClient } from "@aether-mailer/node";

const client = new AetherMailerClient({
  baseURL: "http://localhost:8080",
  apiKey: "your-api-key",
});

await client.email.send({
  to: "[email protected]",
  subject: "Hello from Aether",
  body: "This is a test email",
});

πŸ“ Architecture

πŸ—οΈ Evolved Monorepo Structure

aether-mailer/
β”œβ”€β”€ 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
β”‚   β”œβ”€β”€ forgot/            # Password recovery
β”‚   β”œβ”€β”€ 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, domains)
β”‚   β”‚   β”œβ”€β”€ middleware/    # Gin middleware (auth, validation, monitoring)
β”‚   β”‚   β”œβ”€β”€ models/        # Data models and structs
β”‚   β”‚   β”œβ”€β”€ routes/        # API route definitions
β”‚   β”‚   β”œβ”€β”€ services/      # Business logic (auth, users, domains)
β”‚   β”‚   └── tests/         # Unit and integration tests
β”‚   β”œβ”€β”€ main.go            # Main server entry point
β”‚   β”œβ”€β”€ go.mod             # Go modules file
β”‚   └── go.sum             # Go modules checksum
β”œβ”€β”€ package/                # πŸ“¦ Package Ecosystem (NEW)
β”‚   β”œβ”€β”€ github/            # GitHub App Package
β”‚   β”‚   β”œβ”€β”€ src/          # TypeScript source
β”‚   β”‚   β”œβ”€β”€ Dockerfile    # Container config
β”‚   β”‚   └── README.md     # Package docs
β”‚   β”œβ”€β”€ golang/           # Go SDK Package
β”‚   β”‚   β”œβ”€β”€ go.mod        # Go modules
β”‚   β”‚   └── README.md     # Go package docs
β”‚   β”œβ”€β”€ node/             # Node.js SDK Package
β”‚   β”‚   β”œβ”€β”€ src/          # TypeScript source
β”‚   β”‚   β”œβ”€β”€ examples/     # Usage examples
β”‚   β”‚   └── README.md     # Node.js package docs
β”‚   └── README.md         # Package ecosystem overview
β”œβ”€β”€ cli/                    # Command Line Interface (TypeScript)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ commands/      # CLI commands (users, domains, backup)
β”‚   β”‚   β”œβ”€β”€ utils/         # CLI utilities
β”‚   β”‚   └── types/         # TypeScript definitions
β”‚   └── package.json       # CLI-specific dependencies
β”œβ”€β”€ services/               # Core Mail Services (TypeScript)
β”œβ”€β”€ tools/                  # Development Utilities (TypeScript)
β”œβ”€β”€ routers/                # API Routing Services (TypeScript)
β”œβ”€β”€ prisma/                 # Database Schema & Migrations
β”‚   β”œβ”€β”€ schema.prisma      # Database schema definition
β”‚   └── config.ts          # Prisma configuration
β”œβ”€β”€ public/                 # Static Assets
β”œβ”€β”€ docs/                   # Documentation
β”œβ”€β”€ docker/                 # Docker Configuration
β”œβ”€β”€ .storybook/             # Storybook Configuration
└── electron/               # Electron App (Future)

πŸ”„ Enhanced Data Flow Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Next.js App   β”‚    β”‚   Gin API        β”‚    β”‚   PostgreSQL    β”‚
β”‚   (Frontend)    │◄──►│   (Backend)      │◄──►│   (Database)    β”‚
β”‚  Port 3000      β”‚    β”‚  Port 8080       β”‚    β”‚  Port 5432      β”‚
β”‚  TypeScript     β”‚    β”‚  Go              β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚                       β”‚                       β”‚
           β–Ό                       β–Ό                       β–Ό
     JWT Tokens            API Endpoints         User/Domain Data
     React Context        Authentication         GORM ORM
     shadcn/ui Components  Business Logic        Auto-migrations
           β”‚                       β”‚
           β–Ό                       β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  Package Ecosystemβ”‚   β”‚  GitHub App      β”‚
    β”‚  (Multi-Language) β”‚   β”‚  (Orchestration) β”‚
    β”‚  GitHub App       β”‚   β”‚  Release Detect  β”‚
    β”‚  Go SDK           β”‚   β”‚  Workflow Triggerβ”‚
    β”‚  Node.js SDK      β”‚   β”‚  Notifications   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ—ΊοΈ Development Roadmap

🎯 Phase 1: Foundation (βœ… Complete - Q1 2025)

  • βœ… Hybrid Monorepo Setup - Go backend + TypeScript frontend workspaces
  • βœ… Authentication System - Complete JWT implementation with forms
  • βœ… Frontend Framework - Next.js 16 + React 19.2.1 + shadcn/ui
  • βœ… Go Backend API - Gin with authentication endpoints
  • βœ… Database Layer - GORM with PostgreSQL and user models
  • βœ… CLI Tools - Complete command-line interface
  • βœ… Development Environment - TypeScript strict mode, Go modules, hot reload

πŸš€ Phase 2: Ecosystem Evolution (βœ… Complete - Q1 2025)

  • βœ… Package Ecosystem Creation - GitHub App, Go SDK, Node.js SDK
  • βœ… GitHub Marketplace Integration - Verified GitHub App with release orchestration
  • βœ… Multi-Language SDKs - Native Go and TypeScript SDKs
  • βœ… Enhanced Documentation - Package-specific docs and architecture guides
  • βœ… Docker Deployment - Production-ready containers for all packages
  • βœ… Security Implementation - Rate limiting, validation, security headers

βš™οΈ Phase 3: Core Features (πŸ”„ In Progress - Q2 2025)

  • πŸ”„ User Management Dashboard - Complete CRUD interface
  • πŸ”„ Domain Administration - Multi-domain support
  • πŸ”„ Security Enhancements - Rate limiting, validation, CORS
  • πŸ“‹ API Documentation - Comprehensive API docs
  • πŸ“‹ Testing Suite - Unit and integration tests
  • πŸ“‹ Performance Optimization - Caching and optimization

🌟 Phase 4: Mail Protocols (Q3 2025)

  • πŸ“‹ SMTP Engine - Incoming email processing in Go
  • πŸ“‹ IMAP Server - Email retrieval and folder management in Go
  • πŸ“‹ Email Queue - Outbound delivery system with Go goroutines
  • πŸ“‹ Basic Security - SPF, DKIM implementation
  • πŸ“‹ Webmail Interface - Basic email client

🎯 Phase 5: Enterprise Features (Q4 2025)

  • πŸ“‹ Advanced Security - Spam filtering, virus scanning
  • πŸ“‹ CalDAV/CardDAV - Calendar and contacts sync
  • πŸ“‹ JMAP Support - Modern email protocol
  • πŸ“‹ High Availability - Clustering and failover
  • πŸ“‹ Mobile Application - React Native companion app

πŸ’» Development

🎯 Enhanced Make Command Interface

The project uses a comprehensive Makefile with 60+ commands for streamlined development across Go, TypeScript, and the new package ecosystem:

# πŸš€ Quick Start & Development
make quick-start          # Install, migrate, and start dev servers
make dev                 # Start all services (frontend + backend)
make dev-frontend        # Frontend only (port 3000)
make dev-backend         # Backend only (port 8080)

# πŸ“¦ Package Development (NEW)
make dev-github          # Start GitHub App development
make build-packages      # Build all packages
make test-packages       # Test all packages
make docs-packages       # Generate package documentation

# πŸ”§ Go Backend Development
make go-server           # Start Go server directly
make go-build            # Build Go binary
make go-test             # Run Go tests
make go-mod-tidy         # Clean Go dependencies
make go-fmt              # Format Go code

# πŸ—οΈ Building & Production
make build               # Build all packages
make build-frontend       # Frontend production build
make build-packages      # Build all package ecosystem
make start               # Start production servers

# πŸ”§ Code Quality & Testing
make lint                # Lint all packages
make lint-fix            # Auto-fix linting issues
make typecheck           # TypeScript type checking
make format              # Format code with Prettier
make test                # Run all tests
make test-coverage       # Run tests with coverage

# πŸ—„οΈ Database Management
make db-generate         # Generate Prisma client
make db-migrate          # Run database migrations
make db-studio           # Open Prisma Studio
make db-seed             # Seed development data
make db-reset            # Reset database

# πŸ› οΈ CLI Tools
make cli                 # Run CLI commands
make cli-install         # Install CLI globally

# 🐳 Docker & Deployment
make docker-build        # Build Docker image
make docker-run          # Run with Docker Compose
make docker-stop         # Stop Docker services
make docker-packages     # Build all package containers

# πŸ”§ Maintenance & Utilities
make clean               # Clean build artifacts
make reset               # Reset project to clean state
make health              # Check service health
make status              # Show project status
make audit               # Security audit dependencies

πŸ“‹ Evolved Development Workflow

# New developer setup
make quick-start

# Daily development
make dev                 # Start working (Go + TypeScript)
make lint-fix            # Fix code issues
make typecheck           # Verify types
make test                # Run tests

# Package-specific development
make dev-github          # GitHub App development
cd package/github        # Work on GitHub App
cd package/golang        # Work on Go SDK
cd package/node          # Work on Node.js SDK

# Go-specific development
cd server
go run main.go          # Start Go server
go test ./...           # Run Go tests
go fmt ./...            # Format Go code
go mod tidy             # Clean dependencies

# TypeScript-specific development
make dev-frontend       # Frontend only
make lint               # Check code quality
make typecheck          # Verify types

# Before committing
make format             # Format code
make lint               # Check code quality
make typecheck          # Verify types

# Database changes
make db-migrate         # Apply migrations
make db-studio          # Browse database

# Production deployment
make build              # Build everything
make docker-build       # Create Docker image
make docker-run         # Deploy

🎯 Advanced Commands

# Performance & Monitoring
make perf-build          # Build with performance analysis
make metrics             # Show project metrics
make monitor             # Start monitoring tools

# Environment Management
make env-dev             # Setup development environment
make env-prod            # Setup production environment

# Backup & Recovery
make backup              # Create project backup
make restore-backup BACKUP=filename.tar.gz

# CI/CD Helpers
make ci-install          # Install for CI environment
make ci-build            # Build for CI
make ci-test             # Test for CI

# Project Information
make tree                # Show project structure
make ports               # Show used ports
make deps                # Show dependency tree
make help                # Show all commands

πŸ“‹ Enhanced Development Guidelines

  • Make-First Workflow - Use make commands for all operations
  • Go Best Practices - Follow Go conventions for backend code
  • TypeScript Strict Mode - All frontend code must pass strict type checking
  • Package Standards - Follow package-specific guidelines and conventions
  • Hybrid Monorepo Best Practices - Use workspace-specific dependencies
  • 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

πŸ” Authentication System

🎯 Complete Hybrid Implementation

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

πŸ”„ Hybrid Authentication Flow

// 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 logout

🀝 Contributing

We're looking for contributors to help build this comprehensive evolved mail server! Whether you're experienced with Go, TypeScript, GitHub Apps, mail protocols, web development, or package development, there's a place for you.

🎯 How to Get Started

  1. Fork the repository and create a feature branch
  2. Check the issues for tasks that need help
  3. Join discussions about architecture and features
  4. Start small - Documentation, tests, or minor features
  5. Follow our code standards and commit guidelines

πŸ—οΈ Areas Needing Help

  • Go Backend Development - API endpoints, business logic, security, mail protocols
  • TypeScript Frontend Development - React components, UI/UX design, dashboard
  • Package Development - GitHub App enhancements, Go SDK features, Node.js SDK improvements
  • Database Design - Schema development, migrations, optimization
  • Mail Protocol Experts - SMTP, IMAP, JMAP implementation in Go
  • Security Specialists - Authentication, encryption, filtering
  • DevOps Engineers - Docker, deployment, CI/CD for hybrid stack
  • GitHub App Experts - Webhook handling, Marketplace integration
  • CLI Development - Command-line tools and utilities
  • Documentation - API docs, user guides, tutorials, package docs

πŸ“ Evolved Contribution Process

  1. Choose an area - Core server, frontend, or specific package
  2. Read package-specific docs - Understand package conventions
  3. Create a branch with a descriptive name
  4. Implement your changes following our evolved guidelines
  5. Test thoroughly in all relevant environments
  6. Submit a pull request with clear description and testing
  7. Address feedback from maintainers and community

πŸ“ž Support & Community

πŸ’¬ Get Help

πŸ› Reporting Issues

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
  • Package-specific information (if applicable)

πŸ“Š Project Status

Component Status Technology Evolution Notes
Hybrid Architecture βœ… Working Go + TypeScript Enhanced Monorepo with package ecosystem
Authentication System βœ… Working JWT (Go/TS) Complete Full implementation with forms
Go Backend API βœ… Working Gin + GORM Enhanced High-performance with PostgreSQL
Frontend Framework βœ… Working Next.js 16 + React 19.2.1 Enhanced shadcn/ui + Tailwind CSS v4
Package Ecosystem βœ… Working Multi-Language NEW GitHub App + Go SDK + Node.js SDK
GitHub App βœ… Working TypeScript + Fastify NEW Verified Marketplace app
Go SDK βœ… Working Native Go NEW High-performance client library
Node.js SDK βœ… Working TypeScript NEW Universal client with examples
UI Component Library βœ… Working shadcn/ui + Tailwind CSS Enhanced Complete component set
Database Layer βœ… Working GORM + PostgreSQL Enhanced Auto-migrations + user models
CLI Tools βœ… Working TypeScript Enhanced Complete command-line interface
Docker Deployment βœ… Working Multi-Stage NEW All packages containerized
User Management πŸ”„ In Progress Go/TS Enhanced Dashboard interface
Domain Management πŸ“‹ Planned Go/TS Planned Multi-domain support
Mail Protocols πŸ“‹ Planned Go Planned SMTP/IMAP engines
Testing Suite πŸ“‹ Planned Go/TS Planned Unit and integration tests
Documentation βœ… Working Go/TS Enhanced Package-specific docs

πŸ† Sponsors & Partners

Development led by Sky Genesis Enterprise

We're looking for sponsors and partners to help accelerate development of this open-source evolved mail server project.

🀝 Become a Sponsor


πŸ“„ License

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.

πŸ™ Acknowledgments

  • Sky Genesis Enterprise - Project leadership and evolution
  • Go Community - High-performance programming language and ecosystem
  • Gin Framework - Lightweight HTTP web framework
  • GORM Team - Modern Go database library
  • Next.js Team - Excellent React framework
  • React Team - Modern UI library
  • shadcn/ui - Beautiful component library
  • GitHub - Marketplace platform and integration tools
  • Fastify Team - High-performance Node.js 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

πŸš€ Join Us in Building the Evolved Future of Email Infrastructure!

⭐ Star This Repo β€’ πŸ› Report Issues β€’ πŸ’‘ Start a Discussion


πŸ”§ Rapid Evolution - Complete Package Ecosystem with GitHub Marketplace Integration!

Made with ❀️ by the Sky Genesis Enterprise team

Building an evolved mail server with complete authentication, package ecosystem, and GitHub integration

About

All-in-one Enterprise Mail & Collaboration server. Secure, scalable and fluent in every protocol (IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV).

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors