# Manacore Monorepo Monorepo containing all Manacore projects with shared packages and unified tooling. ## Projects | Project | Description | Tech Stack | | ------------------ | ------------------------------- | ------------------------------ | | **maerchenzauber** | AI-powered story generation app | NestJS, Expo, SvelteKit, Astro | | **manacore** | Multi-app ecosystem platform | Expo, SvelteKit, Astro | | **manadeck** | Card/deck management app | NestJS, Expo, SvelteKit | | **memoro** | Voice memo & AI analysis app | Expo, SvelteKit, Astro | ## Getting Started ### Prerequisites - Node.js 20+ - pnpm 9.15.0+ ### Installation ```bash # Install pnpm globally (if not installed) npm install -g pnpm # Install all dependencies pnpm install ``` ### Development ```bash # Start all projects in dev mode pnpm run dev # Start a specific project pnpm run maerchenzauber:dev pnpm run manacore:dev pnpm run manadeck:dev pnpm run memoro:dev # Build all projects pnpm run build # Run tests pnpm run test # Type check pnpm run type-check # Format code pnpm run format ``` ## Shared Packages Located in `packages/`: | Package | Description | | --------------------------- | --------------------------------------- | | `@manacore/shared-types` | Common TypeScript types | | `@manacore/shared-supabase` | Unified Supabase client | | `@manacore/shared-utils` | Utility functions (date, string, async) | | `@manacore/shared-ui` | React Native UI components | ### Using Shared Packages ```typescript // In any project import { User, ApiResponse } from '@manacore/shared-types'; import { createSupabaseClient } from '@manacore/shared-supabase'; import { formatDate, truncate, retry } from '@manacore/shared-utils'; ``` ## Repository Structure ``` manacore-monorepo/ ├── packages/ # Shared packages │ ├── shared-types/ # TypeScript types │ ├── shared-supabase/ # Supabase utilities │ ├── shared-utils/ # Common utilities │ └── shared-ui/ # React Native components ├── maerchenzauber/ # Storyteller project ├── manacore/ # Manacore apps project ├── manadeck/ # ManaDeck project ├── memoro/ # Memoro project ├── turbo.json # Turborepo configuration ├── pnpm-workspace.yaml # Workspace configuration └── package.json # Root package ``` ## Tooling - **Package Manager:** pnpm 9.15.0 - **Build System:** Turborepo - **Formatting:** Prettier - **Node Version:** 20 (see .nvmrc) ## Adding Dependencies ```bash # Add to root (dev tools) pnpm add -D -w # Add to specific project pnpm add --filter maerchenzauber # Add to shared package pnpm add --filter @manacore/shared-utils ``` ## Contributing 1. Create a feature branch 2. Make changes 3. Run `pnpm run format` and `pnpm run type-check` 4. Commit with conventional commit messages 5. Create pull request ## License Private - All rights reserved