Main Languages Learner web application — React, Vite, SSR, and Supabase.
Run from the monorepo root with pnpm --filter app-web <script>, or from this directory after pnpm install at the root.
| Script | Description |
|---|---|
dev |
Development server (Express + Vite) |
preview |
Production-like server |
build |
Client + SSR production build |
build:client / build:server |
Individual build steps |
lint / lint:fix |
ESLint |
stylelint / stylelint:fix |
Stylelint for CSS/SCSS |
typecheck |
TypeScript project references |
i18n:extract |
Extract FormatJS messages |
i18n:manage |
Translation management helper |
circular-deps |
Detect circular imports in UI code |
knip |
Unused exports / dependencies (Knip) |
Docker and bundle-stats scripts are also defined in package.json.
dev runs this app alone and proxies /api/* to a backend it expects at
http://localhost:${BACKEND_PORT}. pnpm dev at the repository root brings that backend up in
Docker first (docker-compose.dev.yml) and then runs this same
script — this app stays on the host, where Vite is not paying bind-mount latency per module.
Variable names for a real backend may appear in the root .env.example; the repository does not include database migrations or a self-contained local stack.