mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:01:08 +02:00
Six Expo mobile apps lagged behind their web counterparts and haven't shipped updates. Keeping them in the repo kept CI noisy (the context/ mobile type errors were only unmasked after yesterday's postinstall fix), and they blocked other cleanup (parallel lockfile entries, dead scripts). Removing them since the web surface under mana.how is the active product. Deleted (~175 MB, ~700 files): - apps/cards/apps/mobile - apps/chat/apps/mobile - apps/context/apps/mobile (the one still failing type-check) - apps/mana/apps/mobile - apps/picture/apps/mobile - apps/traces/apps/mobile Kept: apps/memoro/apps/mobile (the only actively-developed mobile app, tied to the audio-recording native module). Cleanup: - Dropped 6 `dev:*:mobile` scripts from root package.json that pointed at the deleted apps. Other `dev:*:mobile` entries (quotes, contacts, calendar, mail, moodlit, finance, figgos) already pointed at non-existent apps before this change — out of scope, a separate dead-script sweep. - Root CLAUDE.md: updated the "per-product mobile apps exist" prose and the repo-layout diagram to reflect the memoro-only reality. - apps/mana/CLAUDE.md: removed the `mobile/` entry from the apps/ layout box, noted the deletion date, and updated the tech-stack table to point at the memoro mobile app as the sole Expo surface. No CI workflow or turbo.json references touched — none existed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apps/landing | ||
| docs | ||
| packages | ||
| .gitignore | ||
| .mcp.json | ||
| .npmrc | ||
| app.json | ||
| BUG_ANALYSIS.md | ||
| CLAUDE.md | ||
| DEPLOYMENT_COMPLETE.md | ||
| DEPLOYMENT_STATUS.md | ||
| DEPLOYMENT_STEPS.md | ||
| eas.json | ||
| MIGRATION_PLAN.md | ||
| package.json | ||
| process-jobs-fix.md | ||
| README.md | ||
| tsconfig.base.json | ||
Picture - AI Image Generation Platform
Ein Monorepo mit drei Apps für AI-basierte Bildgenerierung und -verwaltung.
🏗️ Architektur
picture/
├── apps/
│ ├── mobile/ # React Native + Expo (iOS & Android)
│ ├── web/ # SvelteKit Web App
│ └── landing/ # Astro Landing Page
├── packages/
│ ├── shared/ # Geteilte Business Logic, Types, API
│ └── memoro-ui/ # Shared UI Component Library
└── supabase/ # Database & Edge Functions
🚀 Quick Start
Voraussetzungen
- Node.js 20+
- pnpm 9+
- Expo CLI (für Mobile)
Installation
# Dependencies installieren
pnpm install
# Alle Apps starten
pnpm dev
Einzelne Apps starten
# Mobile App (React Native + Expo)
pnpm dev:mobile
# Expo Server läuft standardmäßig auf Port 8081
# Web App (SvelteKit)
pnpm dev:web
# Dev Server: http://localhost:5173
# Landing Page (Astro)
pnpm dev:landing
# Dev Server: http://localhost:4321
📦 Apps
Mobile App (apps/mobile)
Tech Stack:
- React Native 0.81 + Expo SDK 54
- Expo Router (File-based Routing)
- NativeWind (Tailwind für React Native)
- Zustand (State Management)
Features:
- ✅ Native iOS & Android Experience
- ✅ Bildgenerierung mit AI Models
- ✅ Gallery mit Infinite Scroll
- ✅ Image Detail View mit Zoom
- ✅ Archive Funktionalität
- ✅ Offline-fähig
Starten:
pnpm dev:mobile
Web App (apps/web)
Tech Stack:
- SvelteKit 2.x + Svelte 5
- Tailwind CSS
- Server-Side Rendering (SSR)
Features:
- ✅ Volle Web-Anwendung
- ✅ Responsive Design
- ✅ SEO-optimiert durch SSR
- ✅ Image Upload mit Drag & Drop
- ✅ Masonry Gallery Layout
Starten:
pnpm dev:web
Landing Page (apps/landing)
Tech Stack:
- Astro 5.x
- Tailwind CSS
- Static Site Generation
Features:
- ✅ Ultraschnell (0 JS by default)
- ✅ SEO-optimiert
- ✅ Marketing-optimiert
- ✅ Statically Generated
Starten:
pnpm dev:landing
📚 Shared Packages
@picture/shared
Geteilte Business Logic zwischen allen Apps:
- Supabase Types & API Clients
- Image Utilities
- Validation Logic
- Date Formatting
- Constants
@picture/memoro-ui
Shared UI Component Library mit CLI Tool:
- Wiederverwendbare UI Components
- Cross-platform (React Native & Web)
- CLI für Component Management
Siehe UI Library Docs
🛠️ Scripts
Development
pnpm dev # Alle Apps parallel starten
pnpm dev:mobile # Nur Mobile App
pnpm dev:web # Nur Web App
pnpm dev:landing # Nur Landing Page
Build
pnpm build # Alle Apps bauen
pnpm build:mobile # Mobile Production Build
pnpm build:web # Web Production Build
pnpm build:landing # Landing Page Build
Quality
pnpm lint # Alle Packages linten
pnpm type-check # TypeScript Type Checking
Cleanup
pnpm clean # Alle Build-Artefakte & node_modules löschen
🗄️ Datenbank
Das Projekt verwendet Supabase für:
- PostgreSQL Database
- Authentication
- Storage (für Bilder)
- Edge Functions (AI Image Generation)
Environment Variables
Erstelle eine .env Datei im Root mit:
# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_KEY=your-service-key
Supabase Setup
Siehe SETUP_REPLICATE.md für Details zur Supabase & Replicate Integration.
📖 Dokumentation
🚢 Deployment
Mobile (EAS Build)
cd apps/mobile
eas build --platform ios --profile production
eas build --platform android --profile production
Web (Cloudflare Pages)
cd apps/web
pnpm build
# Deploy über Cloudflare Pages Dashboard
# Build Command: pnpm build
# Output Directory: build
Landing (Cloudflare Pages)
cd apps/landing
pnpm build
# Deploy über Cloudflare Pages Dashboard
# Build Command: pnpm build
# Output Directory: dist
🧰 Tech Stack Summary
Package Manager: PNPM Workspaces
Language: TypeScript 5.x
Backend: Supabase (PostgreSQL, Auth, Storage)
AI Models: Replicate API
Mobile:
- React Native 0.81
- Expo SDK 54
- Expo Router
- NativeWind
Web:
- SvelteKit 2.x
- Svelte 5
- Tailwind CSS
- Vite
Landing:
- Astro 5.x
- Tailwind CSS
- Static Generation
🔧 Troubleshooting
"Tried to register two views with the same name"
Dieses Problem tritt auf, wenn React Native Dependencies dupliziert sind (typisch bei PNPM Workspaces).
Fix:
# Alle node_modules und Lock-File löschen
rm -rf node_modules apps/*/node_modules packages/*/node_modules pnpm-lock.yaml
# Neu installieren
pnpm install
Die PNPM overrides in package.json sollten dies in Zukunft verhindern.
Metro Bundler Cache Issues
Wenn die Mobile App nicht korrekt lädt:
# Metro Cache löschen
pnpm dev:mobile -- --clear
# Watchman Cache löschen
watchman watch-del-all
TypeScript findet @picture/shared nicht
- Überprüfe
tsconfig.jsonpaths in der jeweiligen App - Stelle sicher, dass
babel-plugin-module-resolverinstalliert ist (Mobile) - Restart TypeScript Server in deiner IDE
- Bei Mobile: Check
metro.config.jswatchFolders
Supabase Types nicht gefunden
# Types neu generieren
cd packages/shared
pnpm generate:types
🤝 Contributing
- Erstelle einen Feature Branch
- Committe deine Changes
- Pushe zum Branch
- Öffne einen Pull Request
📝 License
Private Project