books/docs/architecture/tech-stack.md
Greg fa8acef423 Epic 1, Story 1.1: Project Initialization & Repository Setup
- Initialize Git repository with main branch
- Create comprehensive .gitignore for Node.js, React, and environment files
- Set up directory structure (frontend/, backend/, docs/)
- Create detailed README.md with project overview and setup instructions
- Add .env.example with all required environment variables
- Configure Prettier for consistent code formatting

All acceptance criteria met:
 Git repository initialized with appropriate .gitignore
 Directory structure matches Technical Assumptions
 README.md created with project overview and setup docs
 .env.example file with all required environment variables
 Prettier config files added for code formatting consistency

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:12:30 +01:00

3.5 KiB

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