# Keshav Anand Portfolio ## Overview A minimalist terminal-themed portfolio website featuring an interactive particle background with cursor-following character effects. The site displays a single SSH command that visitors can copy to connect. Built with React frontend and Express backend, using the Catppuccin Mocha color palette for a dark terminal aesthetic. ## User Preferences Preferred communication style: Simple, everyday language. ## System Architecture ### Frontend Architecture - **Framework**: React 18 with TypeScript - **Routing**: Wouter (lightweight React router) - **Styling**: Tailwind CSS with custom Catppuccin Mocha theme variables - **UI Components**: shadcn/ui component library (New York style variant) - **State Management**: TanStack React Query for server state - **Build Tool**: Vite with path aliases (@/, @shared/, @assets/) ### Backend Architecture - **Runtime**: Node.js with Express - **Language**: TypeScript (ESM modules) - **API Pattern**: RESTful routes prefixed with /api - **Storage**: Pluggable storage interface (currently in-memory, prepared for PostgreSQL) ### Project Structure ``` client/ # React frontend src/ components/ # UI components (shadcn/ui) pages/ # Route pages hooks/ # Custom React hooks lib/ # Utilities and query client server/ # Express backend index.ts # Entry point routes.ts # API route definitions storage.ts # Data storage interface shared/ # Shared types and schemas schema.ts # Drizzle ORM schema definitions ``` ### Design System - **Theme**: Catppuccin Mocha (dark-only) - **Typography**: JetBrains Mono monospace font - **Key Colors**: - Background: #1e1e2e - Primary green: #a6e3a1 - Teal accent: #94e2d5 - Text: #cdd6f4 ### Build Configuration - Development: `npm run dev` (tsx with Vite dev server) - Production: `npm run build` (esbuild for server, Vite for client) - Output: `dist/` directory with `index.cjs` and `public/` folder ## External Dependencies ### Database - **ORM**: Drizzle ORM with PostgreSQL dialect - **Schema Location**: shared/schema.ts - **Migrations**: ./migrations directory - **Connection**: DATABASE_URL environment variable required for production ### Third-Party Services - **Google Fonts**: JetBrains Mono font family loaded via CDN ### Key NPM Packages - **UI**: Radix UI primitives, Lucide React icons, class-variance-authority - **Forms**: react-hook-form with zod validation - **Data**: @tanstack/react-query for async state - **Utilities**: clsx, tailwind-merge, date-fns