learn

Project structure

Two independent apps, not a workspace monorepo.

Despite what the repo README calls it, this is not a workspace monorepo. There is no root manifest, no workspace configuration, and no shared packages: backend/ and frontend/ are two independent apps with separate installs, separate lockfiles (pnpm-lock.yaml in backend, package-lock.json in frontend), and separate run commands.

.
├── backend/    # Node CommonJS app: Express 5, Mongoose, Socket.io
└── frontend/   # Vite app: React 19, Redux Toolkit, React Router

Each side is started and installed on its own, and either side can be deployed without the other. The backend/ overview and frontend/ overview describe what each app owns. The repo root holds only docs, vercel.json (backend targeting — see Hosting notes), and the two .env.example templates.

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