# Technology Stack - Star Kitten ## Core Technologies ### Runtime & Package Management - **Bun** - JavaScript runtime and package manager - Fast package installation and script execution - Native TypeScript support - Built-in test runner (`bun test`) - WebAPI compatibility for modern web standards ### Language & Type System - **TypeScript** - Primary development language - Strict type checking enabled across all packages - Comprehensive type definitions for EVE Online data structures - Interface-driven development for API integrations - Global type declarations for shared client instances ### Build System - **Workspace Architecture** - Bun workspaces for monorepo management - Four core packages: `@star-kitten/discord`, `@star-kitten/eve`, `@star-kitten/util`, plus applications - Cross-package dependencies managed through workspace references - Unified build commands across all packages (`bun build`, `bun dev`, `bun test`) - **tsdown** - TypeScript bundler for package builds - Zero-config TypeScript compilation - Watch mode support for development - Declaration file generation ## Discord Integration ### Discord Framework - **Dysnomia** - Discord API library - Modern JavaScript Discord library with full TypeScript support - Gateway intents configuration for minimal resource usage - Built-in interaction handling (slash commands, modals, components) - Event-driven architecture for command processing ### Command Architecture - **Auto-discovery Pattern** - Commands automatically registered via file system scanning - Glob patterns (`**/*.command.{js,ts}`) for command file detection - Convention-based naming and structure - Global client registration with event listeners - **Internationalization** - Full i18n support - Command names and descriptions localized across multiple languages - Structured translation files for consistent localization ## Database & Data Management ### Database Layer - **SQLite** - Local database storage - Single-file database for simple deployment - ACID compliance for data integrity - Excellent performance for read-heavy workloads - **Drizzle ORM** - Type-safe database access - Schema-first approach with TypeScript definitions - Automatic migration generation via Drizzle Kit - Relationship mapping and query builder - Active Record pattern implementation in model helpers ### Data Processing - **Streaming JSON Processing** - Memory-efficient handling of large datasets - `stream-json` library for parsing large EVE reference data files - Query-based filtering during stream processing - In-memory caching with TTL for frequently accessed data - **Reference Data Management** - External data sources (everef.net, hoboleaks) - Automated download and extraction scripts - Static export processes for optimized data formats ## Web Framework ### Frontend Framework - **Brisa** - Server-side rendering framework - Modern SSR with progressive enhancement - Component-based architecture - Built-in suspense support for async data loading - TypeScript-first development experience ### Styling & UI - **Tailwind CSS** - Utility-first CSS framework - Responsive design system - Component-level styling - **DaisyUI** - Tailwind CSS component library - Pre-built UI components (stats, progress bars, modals) - Consistent design language across web interface ### Authentication & Middleware - **EVE SSO Integration** - OAuth2 flow implementation - Complete authentication middleware stack - Token management with automatic refresh - Scope validation and permission handling - **Cookie Management** - Custom utilities for session handling - Secure cookie implementation - State management for OAuth flows ## External API Integrations ### EVE Online APIs - **ESI (EVE Swagger Interface)** - Official EVE Online API - Complete OAuth2 flow with scope management - Character, corporation, and alliance data access - Market data, skill queues, wallet information - Automatic token refresh with scope preservation - **JWT Token Validation** - Secure token handling - Public key verification against EVE's JWKS endpoint - Token scope extraction and validation - Character ID resolution from JWT payloads ### Third-Party APIs - **Janice API** - Market appraisal service - Price checking and market analysis - Bulk item appraisal functionality - Caching layer for improved performance - **EveTycoon API** - Market data integration - Historical price data - Market trend analysis ## Development Tools & Practices ### Code Quality - **Prettier** - Code formatting - Consistent formatting across all packages - Integration with VS Code for format-on-save - Shared configuration files (`.prettierrc.yaml`) - **ESLint** - Code linting (implied by VS Code settings) - TypeScript-aware linting rules - Automatic fixing on save ### Testing Framework - **Bun Test** - Native test runner - Fast test execution with TypeScript support - Coverage reporting capabilities - Target: 80%+ test coverage across major functionality ### Development Environment - **VS Code Configuration** - Consistent editor settings across team - Format on save enabled - Trailing whitespace removal - Final newline insertion - **Environment Management** - dotenvx for environment variable management - Separate configurations for development and production - Secure key management for API credentials ## Utility Libraries ### Scheduling & Background Jobs - **Cron Parser** - Schedule management - Cron expression parsing and validation - Job scheduling with repeat patterns - **Custom Queue System** - Background job processing - SQLite-based job queue - Worker thread implementation - Email notifications and other background tasks ### Text & Data Processing - **Date Utilities** - Time manipulation - date-fns for date calculations - EVE time conversion utilities - **Logging** - Structured application logs - Winston logging framework - Configurable log levels and outputs - **Text Processing** - Formatting and conversion - Number formatting (K, M, B suffixes) - EVE markup to Discord markdown conversion - Text truncation and cleaning utilities ## Deployment & Configuration ### Environment Configuration - **Multi-Environment Support** - Development, production environment files - Secure API key management - Database path configuration - **Docker Ready** - Containerization support - Bun-based container builds - SQLite database volume mounting ### Database Management - **Migration System** - Schema version control - Drizzle Kit migration generation - Automated migration execution - Schema evolution tracking ## Architecture Patterns ### Package Organization - **Modular Monorepo** - Clear separation of concerns - Core packages for reusable functionality - Application packages for specific implementations - Shared utilities across packages - **Export Patterns** - Structured package APIs - Namespace exports for logical grouping - Direct exports for commonly used functions - Type-only exports where appropriate ### Error Handling - **Consistent Error Patterns** - Standardized error handling - API error wrapping and propagation - Graceful degradation for external service failures - Comprehensive error logging ### Performance Optimizations - **Caching Strategy** - Multi-level caching - In-memory caching for frequently accessed data - Database-level caching for computed results - HTTP response caching for external APIs - **Streaming Processing** - Memory-efficient data handling - Large file processing without memory overflow - Real-time data updates through streaming APIs ## Future Technology Considerations ### Migration Plans - **Web Framework Migration** - Planned transition from Brisa to Elysia + Ripple SPA - Backend: Elysia for high-performance HTTP server - Frontend: Ripple SPA for modern client-side architecture - Gradual migration strategy maintaining backward compatibility ### Expansion Capabilities - **Multi-Game Support** - Architecture designed for game expansion - Pluggable game integration modules - Shared utilities across different game APIs - Common authentication and data patterns