Mirror of github.com/Memo-2023/mana-monorepo
Find a file
Till-JS 4b08c41547 feat(transcriber): Add YouTube transcriber app to monorepo
Integrate new transcriber application for AI-powered YouTube video
transcription with full monorepo structure and Groq Whisper API support.

## App Structure
- apps/transcriber/apps/backend - NestJS API server (port 3006)
- apps/transcriber/apps/web - SvelteKit web application
- apps/transcriber/apps/landing - Astro marketing/content site
- apps/transcriber/apps/mobile - Expo React Native app
- apps/transcriber/packages/shared-types - Shared TypeScript types

## Backend Features
- YouTube video download via yt-dlp (child_process)
- Ultra-fast transcription via Groq Whisper API (~300x realtime)
- Fallback to local Whisper for offline use
- Job queue with background processing
- Real-time progress updates via WebSocket (Socket.io)
- Playlist management for batch processing
- Health check endpoints

## API Endpoints
- POST /transcription - Start transcription job
- GET /transcription - List all jobs
- GET /transcription/:id - Get job status
- DELETE /transcription/:id - Cancel job
- GET /transcription/stats - Statistics
- GET /whisper/models - Available models
- GET/POST/DELETE /playlist - Playlist management
- GET /health - Health checks

## Whisper Models
- Groq: whisper-large-v3-turbo (fast, $0.04/hr)
- Groq: whisper-large-v3 (accurate, $0.111/hr)
- Local: tiny, base, small, medium, large

## Monorepo Integration
- Added to pnpm workspace via apps/*/apps/* pattern
- Root scripts: transcriber:dev, dev:transcriber:*
- Package naming: @transcriber/{backend,web,landing,mobile}
- Turbo tasks: dev, build, lint, type-check
- CLAUDE.md documentation

## Technology Stack
- Backend: NestJS 10, TypeScript, Socket.io
- Web: SvelteKit 2, Svelte 5, Tailwind CSS
- Landing: Astro 4, Solid.js, Tailwind CSS
- Mobile: Expo 52, React Native, NativeWind, Zustand
- Transcription: Groq Whisper API (OpenAI-compatible)

## Migration from Python
- Original Python/FastAPI code preserved in legacy/
- Full rewrite to TypeScript/NestJS
- Same functionality with improved architecture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 14:21:49 +01:00
.claude/plans refactor: restructure 2025-11-26 03:03:24 +01:00
.claude-flow/metrics make auth working 2025-11-26 01:31:12 +01:00
.hive-mind add mana core 2025-11-25 18:56:35 +01:00
apps feat(transcriber): Add YouTube transcriber app to monorepo 2025-11-27 14:21:49 +01:00
docker/init-db make auth working 2025-11-26 01:31:12 +01:00
docs 🧑‍💻 chore: add centralized environment variable system 2025-11-26 13:08:50 +01:00
packages Feat: Refactor postgress 2025-11-27 02:25:37 +01:00
scripts Feat: Refactor postgress 2025-11-27 02:25:37 +01:00
services/mana-core-auth refactor: restructure 2025-11-26 03:03:24 +01:00
.dockerignore make auth working 2025-11-26 01:31:12 +01:00
.editorconfig feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.env.development Fix: Picture App envs 2025-11-26 17:26:07 +01:00
.env.example add mana core 2025-11-25 18:56:35 +01:00
.gitignore 🧑‍💻 chore: add centralized environment variable system 2025-11-26 13:08:50 +01:00
.nvmrc feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.prettierignore feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.prettierrc feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
CLAUDE.md 🧑‍💻 chore: add centralized environment variable system 2025-11-26 13:08:50 +01:00
docker-compose.dev.yml refactor: restructure 2025-11-26 03:03:24 +01:00
docker-compose.yml refactor: restructure 2025-11-26 03:03:24 +01:00
package.json feat(transcriber): Add YouTube transcriber app to monorepo 2025-11-27 14:21:49 +01:00
pnpm-lock.yaml feat(transcriber): Add YouTube transcriber app to monorepo 2025-11-27 14:21:49 +01:00
pnpm-workspace.yaml refactor: restructure 2025-11-26 03:03:24 +01:00
QA_TESTING_CHECKLIST.md add mana core 2025-11-25 18:56:35 +01:00
README.md feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
TEST_CASES_SAMPLES.md add mana core 2025-11-25 18:56:35 +01:00
TESTING_STRATEGY_AUTH_CREDITS.md add mana core 2025-11-25 18:56:35 +01:00
TESTING_STRATEGY_EXECUTIVE_SUMMARY.md add mana core 2025-11-25 18:56:35 +01:00
turbo.json Feat: Refactor postgress 2025-11-27 02:25:37 +01:00

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

# Install pnpm globally (if not installed)
npm install -g pnpm

# Install all dependencies
pnpm install

Development

# 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

// 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

# 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