All checks were successful
Queue Release Build / prepare (push) Successful in 15s
Deploy Web Apps / deploy (push) Successful in 5m35s
Queue Release Build / build-linux (push) Successful in 24m45s
Queue Release Build / build-windows (push) Successful in 13m52s
Queue Release Build / finalize (push) Successful in 23s
5.4 KiB
5.4 KiB
MetoYou / Toju
MetoYou is a desktop-first chat stack managed as an npm monorepo. The repository contains the Angular 21 product client, the Electron desktop shell, the Node/TypeScript signaling server, the Playwright E2E suite, and the Angular 19 marketing website.
Packages
| Path | Purpose | Docs |
|---|---|---|
toju-app/ |
Angular 21 product client | toju-app/README.md |
electron/ |
Electron main process, preload bridge, IPC, and desktop integrations | electron/README.md |
server/ |
Signaling server, server-directory API, and websocket runtime | server/README.md |
e2e/ |
Playwright end-to-end coverage for the product client | e2e/README.md |
website/ |
Angular 19 marketing site served separately from the product client | website/README.md |
Install
- Run
npm installfrom the repository root. - Run
cd server && npm installfor the server package. - If you need to work on the marketing site, run
cd website && npm install. - Copy
.env.exampleto.env.
Configuration
- Root
.envcontrols local SSL withSSL=true|false. - The server also honors an optional
PORTenvironment override at runtime. - When
SSL=true, run./generate-cert.shonce or let./dev.shgenerate local certificates on first launch. server/data/variables.jsonstoresklipyApiKey,releaseManifestUrl,serverPort,serverProtocol,serverHost, andlinkPreview. The server normalizes this file on startup.- When
serverProtocolishttps, the certificates in.certs/must exist and match the configured host or IP.
Main Commands
npm run devstarts the full desktop stack: server, product client, and Electron.npm run startstarts only the Angular product client intoju-app/.npm run electron:devstarts the Angular product client and Electron together.npm run server:devstarts only the server with reload.npm run buildbuilds the Angular product client todist/client.npm run build:electronbuilds the Electron code todist/electron.npm run build:allbuilds the product client, Electron, and server.npm run testruns the product-client Vitest suite.npm run lintruns ESLint across the repo.npm run lint:fixformats Angular templates, sorts template properties, and applies ESLint fixes.npm run test:e2e,npm run test:e2e:ui,npm run test:e2e:debug, andnpm run test:e2e:reportrun the Playwright suite and report tooling.
Repository Map
| Path | Description |
|---|---|
toju-app/src/app/domains/ |
Product-client bounded contexts and domain facades |
toju-app/src/app/infrastructure/ |
Shared client-side technical runtime such as persistence and realtime |
toju-app/src/app/shared-kernel/ |
Cross-domain contracts shared inside the product client |
electron/ |
Electron bootstrap, preload surface, IPC handlers, CQRS, and desktop adapters |
server/src/ |
Express app, websocket runtime, config, CQRS, and persistence layers |
e2e/ |
Playwright tests, helpers, fixtures, and page objects |
website/src/ |
Marketing-site pages, assets, and SSR entry points |
tools/ |
Build, release, formatting, and packaging scripts |
Product Client Docs
| Area | Docs |
|---|---|
| Domains index | toju-app/src/app/domains/README.md |
| Access Control | toju-app/src/app/domains/access-control/README.md |
| Attachment | toju-app/src/app/domains/attachment/README.md |
| Authentication | toju-app/src/app/domains/authentication/README.md |
| Chat | toju-app/src/app/domains/chat/README.md |
| Notifications | toju-app/src/app/domains/notifications/README.md |
| Profile Avatar | toju-app/src/app/domains/profile-avatar/README.md |
| Screen Share | toju-app/src/app/domains/screen-share/README.md |
| Server Directory | toju-app/src/app/domains/server-directory/README.md |
| Theme | toju-app/src/app/domains/theme/README.md |
| Voice Connection | toju-app/src/app/domains/voice-connection/README.md |
| Voice Session | toju-app/src/app/domains/voice-session/README.md |
| Persistence | toju-app/src/app/infrastructure/persistence/README.md |
| Realtime | toju-app/src/app/infrastructure/realtime/README.md |
| Shared Kernel | toju-app/src/app/shared-kernel/README.md |
Supporting Docs
Screenshots