5.0 KiB

Technology Stack

Analysis Date: 2026-05-07

Languages

Primary:

  • TypeScript 5 - All application code, types, and configuration
  • React 19 - UI components and application logic (via Next.js)
  • CSS / Tailwind - Styling

Secondary:

  • JavaScript - Configuration files, optional runtime

Runtime

Environment:

  • Node.js 22.10.0 (Alpine Linux) - as specified in Dockerfile

Package Manager:

  • Yarn (primary for Docker builds; npm/pnpm also supported locally)
  • Lockfiles: package-lock.json, pnpm-lock.yaml, yarn.lock present
  • Registry: npm registry (Dockerfile uses Taobao mirror registry.npmmirror.com for builds)

Frameworks

Core:

  • Next.js 15.2.4 - App Router, React Server Components, standalone output mode
    • Configuration: next.config.mjs
    • Build output: standalone (optimized for Docker)
    • Experimental features: webpackBuildWorker, parallelServerBuildTraces, parallelServerCompiles

Styling:

  • Tailwind CSS 3.4.17 - Utility-first CSS framework
    • Animation plugin: tailwindcss-animate 1.0.7
    • Config: tailwind.config.ts
    • CSS Variables enabled for theming (light/dark mode)

UI Components:

  • Radix UI (15+ component libraries) - Headless, accessible primitives
    • Core: accordion, alert-dialog, avatar, checkbox, dialog, dropdown-menu, label, popover, select, tabs, toast, tooltip, etc.
    • shadcn/ui style components (local copies, not npm packages)
    • Config: components.json
    • Aliases: @/components, @/components/ui, @/lib, @/hooks

Form Management:

  • React Hook Form (latest) - Lightweight form state management
  • Zod (latest) - Schema validation and type-safe form schemas
  • @hookform/resolvers (latest) - Integration between React Hook Form and validation libraries

Data Visualization:

  • Recharts (latest) - React charting library built on D3.js
    • Used for dashboard analytics/metrics visualization

Notifications & Toasts:

  • Sonner 1.7.1 - Toast notification library
  • Radix UI Toast 1.2.4 - Low-level toast primitive (wrapped by use-toast)

Navigation & Theming:

  • next-themes 0.4.4 - Dark/light mode switching
  • lucide-react 0.454.0 - Icon library (240+ icons)

HTTP Client:

  • Axios 1.9.0 - Promise-based HTTP client
    • Configured with request/response interceptors in lib/api/client.ts
    • Automatic token injection via Authorization header
    • 401 error handling (token expiry redirect to /login)

Utilities:

  • js-cookie 3.0.5 - Cookie management (auth token persistence)
  • date-fns 4.1.0 - Date utility library
  • class-variance-authority 0.7.1 - Component variant utilities
  • clsx 2.1.1 - Conditional className merging
  • tailwind-merge 2.5.5 - Tailwind class conflict resolution
  • cmdk 1.0.4 - Command palette component
  • embla-carousel-react 8.5.1 - Carousel component
  • react-day-picker 8.10.1 - Calendar/date picker
  • input-otp 1.4.1 - OTP input component
  • react-resizable-panels 2.1.7 - Resizable panel layout
  • vaul 0.9.6 - Drawer component

Testing & Development

Type Checking:

  • TypeScript 5 (strict mode enabled)
  • Type checking via npm run lint

Linting:

  • Next.js ESLint (build-time linting)
  • Config: ignored during builds (eslint.ignoreDuringBuilds: true)

Development Server:

  • Next.js dev server: npm run dev (default port 3000)

Configuration

Environment:

  • Location: .env.local (local overrides), .env.development, .env.production, .env.example
  • Example file: c:\Users\admin\Desktop\Lila-Server\qy-lty-admin\.env.example
  • Key env vars:
    • NEXT_PUBLIC_API_BASE_URL - Backend API base URL (e.g., http://localhost:8000/api)
    • NODE_ENV - Set to production in Docker runtime

TypeScript:

  • Config: tsconfig.json
  • Strict mode: enabled
  • Path aliases: @/* maps to project root

Next.js:

  • Config: next.config.mjs
  • Output mode: standalone (self-contained app)
  • Images: unoptimized (external image optimization)
  • Build optimization: parallel webpack, server build traces, server compilation

Platform Requirements

Development:

  • Node.js 22+ (or compatible version)
  • Package manager: yarn, npm, or pnpm
  • Environment variables: .env.local with NEXT_PUBLIC_API_BASE_URL

Production:

  • Docker runtime: Node.js 22.10.0 Alpine
  • Memory: Typical SPA requirements (~500MB minimum)
  • Port: 3000 (exposed in Dockerfile)
  • Build artifacts: .next/standalone, public/

Build Process

Development Build:

npm install          # Install dependencies
npm run dev          # Start dev server (hot reload)

Production Build:

npm install          # Install all dependencies
npm run build        # Next.js standalone build → .next/ directory
npm run start        # Start production server (requires .next/ + public/)

Docker Build (CI/CD):

  • Multi-stage build (builder + runner)
  • Builder stage: installs full dependencies, runs npm run build
  • Runner stage: installs production-only dependencies, copies .next/ and public/
  • Yarn mirror: Taobao registry (registry.npmmirror.com)
  • Final CMD: yarn start (port 3000)

Stack analysis: 2026-05-07