# Tech Stack This is the DEFINITIVE technology selection for the entire project. All development must use these exact versions. ## Technology Stack Table | Category | Technology | Version | Purpose | Rationale | |----------|-----------|---------|---------|-----------| | **Frontend Language** | JavaScript (ES6+) | Latest | Frontend development language | Simpler than TypeScript for MVP, faster development, can add TS later | | **Frontend Framework** | React | 18+ | UI framework | Component-based, excellent LLM support, large ecosystem | | **UI Component Library** | None (Custom + Tailwind) | N/A | UI styling | Tailwind sufficient, no component library needed for simple UI | | **State Management** | React Context API | Built-in | Global state | Sufficient for MVP, no Redux complexity needed | | **Backend Language** | Node.js | 20 LTS | Backend runtime | JavaScript consistency with frontend, excellent async I/O | | **Backend Framework** | Express | 4.x | REST API framework | Minimal, flexible, well-documented, fast development | | **API Style** | REST | N/A | API architecture | Simple, standard, no GraphQL complexity needed | | **Database** | PostgreSQL | 15+ | Persistent data storage | Robust, ACID compliant, excellent Prisma support | | **ORM** | Prisma | Latest | Database access layer | Type-safe, great DX, migrations, excellent PostgreSQL support | | **Cache** | In-Memory (Node.js Map) | N/A | Book metadata cache | Simple, sufficient for single-user, no Redis needed | | **File Storage** | N/A | N/A | File storage | No file uploads in MVP (book covers from Open Library) | | **Authentication** | None (Single-User) | N/A | User authentication | Not needed for single-user MVP, add in v1.1 for multi-user | | **Frontend Testing** | Vitest + React Testing Library | Latest | Component and unit tests | Fast, Vite-native, modern alternative to Jest | | **Backend Testing** | Jest | Latest | API and unit tests | Industry standard, great Node.js support | | **E2E Testing** | Manual | N/A | End-to-end testing | Manual testing sufficient for MVP, can add Playwright/Cypress later | | **Build Tool** | Vite | Latest | Frontend build tool | Fast, modern, excellent DX, PWA support via plugin | | **Bundler** | Vite (Rollup) | Latest | JavaScript bundler | Built into Vite, optimized bundles | | **IaC Tool** | Docker Compose | Latest | Local dev orchestration | Simple, sufficient for Coolify deployment | | **CI/CD** | Manual / Coolify | N/A | Deployment automation | Coolify handles deployment, no CI/CD pipeline needed initially | | **Monitoring** | Coolify Built-in | N/A | Uptime monitoring | Health checks via Coolify, add dedicated monitoring post-MVP | | **Logging** | Console (Dev) / Winston (Prod) | Latest | Application logging | Structured logging in production for debugging | | **CSS Framework** | Tailwind CSS | 3.x | Styling framework | Utility-first, mobile-friendly, fast prototyping | | **HTTP Client** | Fetch API (Native) | Built-in | API requests | Modern, built-in, no Axios dependency needed | | **Date Library** | date-fns | Latest | Date manipulation | Lightweight, modular, better than Moment.js | | **PWA Tool** | vite-plugin-pwa | Latest | PWA manifest & service worker | Easy Vite integration, handles PWA boilerplate | | **Validation** | express-validator | Latest | Input validation | Express-specific, declarative, comprehensive | | **Security** | helmet | Latest | Security headers | Essential HTTP security headers for Express | | **CORS** | cors | Latest | Cross-origin requests | Configure frontend-backend communication | ---