# Manacore Monorepo Monorepo containing all Manacore projects with shared packages and unified tooling. ## Staging URLs All services are deployed to staging at `*.staging.manacore.ai`. ### Web Applications | App | Staging URL | Description | |-----|-------------|-------------| | **ManaCore** | https://staging.manacore.ai | Central dashboard for all Mana apps | | **Chat** | https://chat.staging.manacore.ai | AI chat application | | **Calendar** | https://calendar.staging.manacore.ai | Calendar and scheduling | | **Clock** | https://clock.staging.manacore.ai | World clock, timers, alarms | | **Todo** | https://todo.staging.manacore.ai | Task management | ### Backend APIs | Service | Staging URL | Port | |---------|-------------|------| | **Auth** | https://auth.staging.manacore.ai | 3001 | | **Chat API** | https://chat-api.staging.manacore.ai | 3002 | | **Calendar API** | https://calendar-api.staging.manacore.ai | 3016 | | **Clock API** | https://clock-api.staging.manacore.ai | 3017 | | **Todo API** | https://todo-api.staging.manacore.ai | 3018 | ### Landing Pages (Cloudflare Pages) | Project | URL | |---------|-----| | **Chat** | https://chat-landing-90m.pages.dev | | **Picture** | https://picture-landing.pages.dev | | **ManaCore** | https://manacore-landing.pages.dev | | **ManaDeck** | https://manadeck-landing.pages.dev | | **Zitare** | https://zitare-landing.pages.dev | | **Presi** | https://presi-landing.pages.dev | ## Projects | Project | Description | Tech Stack | |---------|-------------|------------| | **manacore** | Multi-app ecosystem platform | Expo, SvelteKit | | **chat** | AI chat application | NestJS, Expo, SvelteKit | | **calendar** | Calendar & scheduling | NestJS, SvelteKit | | **clock** | World clock, timers, alarms | NestJS, SvelteKit | | **todo** | Task management | NestJS, SvelteKit | | **contacts** | Contact management | NestJS, SvelteKit | | **manadeck** | Card/deck management | NestJS, Expo, SvelteKit | | **picture** | AI image generation | NestJS, Expo, SvelteKit | | **zitare** | Daily inspiration quotes | NestJS, Expo, SvelteKit | ## Getting Started ### Prerequisites - Node.js 20+ - pnpm 9.15.0+ - Docker (for local development) ### Installation ```bash # Install pnpm globally (if not installed) npm install -g pnpm # Install all dependencies (also generates .env files) pnpm install # Start Docker infrastructure pnpm docker:up ``` ### Quick Start Use `dev:*:full` commands to start any app with automatic database setup: ```bash pnpm docker:up # Start PostgreSQL, Redis, MinIO pnpm dev:chat:full # Start chat with auth + auto DB setup pnpm dev:calendar:full # Start calendar with auth + auto DB setup pnpm dev:clock:full # Start clock with auth + auto DB setup pnpm dev:todo:full # Start todo with auth + auto DB setup pnpm dev:manacore:full # Start manacore with all backends ``` ### Development Commands ```bash # Build all projects pnpm build # Type check pnpm type-check # Lint pnpm lint # Format code pnpm format ``` ## Shared Packages Located in `packages/`: | Package | Description | |---------|-------------| | `@manacore/shared-auth` | Client-side auth for web/mobile | | `@manacore/shared-nestjs-auth` | NestJS JWT validation guards | | `@manacore/shared-ui` | Shared Svelte UI components | | `@manacore/shared-storage` | S3-compatible storage (MinIO/Hetzner) | | `@manacore/shared-types` | Common TypeScript types | | `@manacore/shared-utils` | Utility functions | | `@manacore/shared-theme` | Theme configuration | ## Repository Structure ``` manacore-monorepo/ ├── apps/ # Active product applications │ ├── manacore/ # Central dashboard │ ├── chat/ # AI chat app │ ├── calendar/ # Calendar app │ ├── clock/ # Clock/timer app │ ├── todo/ # Task management │ ├── contacts/ # Contact management │ ├── manadeck/ # Card/deck app │ ├── picture/ # AI image generation │ └── zitare/ # Daily quotes ├── apps-archived/ # Archived projects ├── games/ # Game projects ├── services/ │ └── mana-core-auth/ # Central auth service ├── packages/ # Shared packages ├── docker/ # Docker configuration └── .github/workflows/ # CI/CD pipelines ``` ## Tooling - **Package Manager:** pnpm 9.15.0 - **Build System:** Turborepo - **Formatting:** Prettier - **Linting:** ESLint - **Git Hooks:** Husky (pre-commit, pre-push) - **Node Version:** 20+ ## Adding Dependencies ```bash # Add to workspace root (dev tools only) pnpm add -D -w # Add to specific project pnpm add --filter @chat/web # Add to shared package pnpm add --filter @manacore/shared-utils ``` ## Deployment ### Deploy Landing Pages ```bash pnpm deploy:landing:chat pnpm deploy:landing:picture pnpm deploy:landing:manacore pnpm deploy:landing:all # Deploy all landing pages ``` ### Deploy to Staging ```bash # Tag-based deployment (triggers CI/CD) git tag chat-staging-v1.0.0 git push origin chat-staging-v1.0.0 ``` ## Documentation - [CLAUDE.md](CLAUDE.md) - Detailed development guidelines - [docs/LOCAL_DEVELOPMENT.md](docs/LOCAL_DEVELOPMENT.md) - Local setup guide - [COMMANDS.md](COMMANDS.md) - All available commands - [cicd/DEPLOYMENT.md](cicd/DEPLOYMENT.md) - Deployment documentation ## License Private - All rights reserved