# Technology Stack **Analysis Date:** 2026-03-16 ## Languages **Primary:** - TypeScript ~5.9.3 - Full codebase type safety **Secondary:** - JavaScript (ES2023) - Configuration and utilities ## Runtime **Environment:** - Browser (React 19 SPA) - Node.js runtime for build tooling **Package Manager:** - Bun - Package and dependency management - Lockfile: `bun.lock` (present) ## Frameworks **Core:** - React 19.2.4 - UI component framework - React Router DOM 7.13.1 - Client-side routing **UI & Components:** - Radix UI 1.4.3 - Accessible component primitives - Tailwind CSS 4.2.1 - Utility-first CSS styling - Lucide React 0.577.0 - Icon library - Sonner 2.0.7 - Toast notification system - next-themes 0.4.6 - Dark mode and theme management **State Management:** - TanStack React Query 5.90.21 - Server state management and data fetching **Internationalization:** - i18next 25.8.18 - i18n framework - react-i18next 16.5.8 - React bindings for i18next **Testing:** - Not detected **Build/Dev:** - Vite 8.0.0 - Build tool and dev server - @vitejs/plugin-react 6.0.0 - React Fast Refresh support - @tailwindcss/vite 4.2.1 - Tailwind CSS Vite plugin - Tailwind Merge 3.5.0 - CSS class utility merging - Class Variance Authority 0.7.1 - CSS variant composition - clsx 2.1.1 - Conditional CSS class binding **Linting & Code Quality:** - ESLint 9.39.4 - JavaScript/TypeScript linting - @eslint/js 9.39.4 - ESLint JS config - typescript-eslint 8.56.1 - TypeScript linting rules - eslint-plugin-react-hooks 7.0.1 - React Hooks best practices - eslint-plugin-react-refresh 0.5.2 - React Fast Refresh plugin ## Key Dependencies **Critical:** - @supabase/supabase-js 2.99.1 - Backend API and authentication client **Infrastructure:** - @types/node 24.12.0 - TypeScript Node.js type definitions - @types/react 19.2.14 - React TypeScript types - @types/react-dom 19.2.3 - React DOM TypeScript types - globals 17.4.0 - Global scope definitions for ESLint ## Configuration **Environment:** - Vite environment variables with `VITE_` prefix - Required env vars: `VITE_SUPABASE_URL`, `VITE_SUPABASE_ANON_KEY` - Configuration via `.env` file (example provided in `.env.example`) **Build:** - Vite config: `vite.config.ts` - React plugin enabled - Tailwind CSS via @tailwindcss/vite - Path alias: `@/` resolves to `./src/` - TypeScript config: `tsconfig.json` (references `tsconfig.app.json` and `tsconfig.node.json`) - Target: ES2023 - Strict mode enabled - No unused locals/parameters enforcement - ESLint config: `eslint.config.js` - Flat config format - Recommended configs: JS, TypeScript, React Hooks, React Refresh - Browser globals enabled ## TypeScript Configuration **tsconfig.app.json:** - Target: ES2023 - Module: ESNext - Strict mode: Enabled - JSX: react-jsx - No emit: True (code generation disabled) - Path alias: `@/*` → `./src/*` - Verbatim module syntax enabled ## Platform Requirements **Development:** - Node.js/Bun runtime - Modern browser with ES2023 support - Recommended: 18+ GB disk for `node_modules` **Production:** - SPA deployment (static hosting) - Supabase PostgreSQL backend access - Modern browser JavaScript support (ES2023) --- *Stack analysis: 2026-03-16*