managarten/README.md
Wuesteon d36b321d9d style: auto-format codebase with Prettier
Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
2025-11-27 18:33:16 +01:00

124 lines
3.2 KiB
Markdown

# 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 <package> -w
# Add to specific project
pnpm add <package> --filter maerchenzauber
# Add to shared package
pnpm add <package> --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