learn

Tech stack

Every external library, grouped by category, with its reason.

Every library below is declared in some workspace manifest — names, version ranges, and categories come from the data, and the build fails if the list drifts. "Used in" points at the folders that import each library. Libraries marked "Declared but not used in source" sit in a manifest but no source file imports them — most notably better-auth, which both manifests declare while authentication actually runs on JWT plus bcrypt.

Language and build

dotenv

Loads local environment files into process.env.

Used in: Backend

Vite

Development server and production bundler.

Used in: Frontend

@types/nodeDeclared but not used in source

Type declarations for Node.js built-ins.

Used in: Frontend

Frontend framework

React

UI library behind every page and component.

Used in: Frontend

UI and styling

clsx

Conditional class names without string juggling.

Used in: Frontend

State

Realtime

Socket.io

Realtime server for chat, typing, presence, and notifications.

Used in: Backend

ioredis

Redis client behind presence and the socket adapter.

Used in: Backend

Backend framework

Express

HTTP framework behind every route module and the app wiring.

Used in: Backend

cors

Cross-origin access for the API and the socket server.

Used in: Backend

Database and ODM

Mongoose

Object modeling for every MongoDB collection in the app.

Used in: Backend

File storage

Multer

Parses multipart uploads with size limits and error handling.

Used in: Backend

Email

Auth and email

better-authDeclared but not used in source

Declared in both manifests but never imported in any source file; authentication is JWT plus bcrypt.

Used in: Backend, Frontend

Validation

Linting and formatting

ESLintDeclared but not used in source

Static analysis run through the lint script.

Used in: Frontend

Other

axios

HTTP client behind every API service module.

Used in: Frontend

Dependencies as of commit cdef8af.

Sources: backend/package.json, frontend/package.json (documented at commit cdef8af)