Mirror of github.com/Memo-2023/mana-monorepo
Find a file
Till JS 61ee1ae269 feat(services): create mana-auth (Hono + Bun) — Phase 5 auth rewrite
Rewrite the central authentication service from NestJS to Hono + Bun.
Uses Better Auth's native fetch-based handler — no Express conversion.

Key architecture changes:
- Better Auth handler mounted directly on Hono (app.all('/api/auth/*'))
- No NestJS DI, modules, guards, decorators — plain TypeScript
- JWT validation via jose (same as extracted services)
- Email via nodemailer (simplified, German templates)
- ~1,400 LOC vs ~11,500 LOC in NestJS (88% reduction)

Service structure:
- auth/better-auth.config.ts — copied from mana-core-auth (framework-agnostic)
- auth/stores.ts — in-memory stores for email redirect URLs
- email/send.ts — nodemailer email functions
- middleware/ — JWT auth, service auth, error handler (shared pattern)
- db/schema/ — copied from mana-core-auth (Drizzle, framework-agnostic)

Port: 3001 (same as mana-core-auth — drop-in replacement)
Database: mana_auth (same DB, same schemas)

Better Auth plugins: Organization, JWT (EdDSA), OIDC Provider,
Two-Factor (TOTP), Magic Link

Note: This is the initial version. Guilds, API keys, Me (GDPR),
security (lockout/audit), and admin endpoints will be added
incrementally. The old mana-core-auth remains until fully replaced.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 02:43:44 +01:00
.changeset feat(versioning): add semantic versioning and changesets to all apps 2026-03-19 16:20:18 +01:00
.claude docs: add comprehensive overview of local-first migration and service extraction 2026-03-27 22:38:13 +01:00
.github refactor(presi): replace NestJS backend with lightweight Hono server 2026-03-28 02:08:40 +01:00
.husky fix(devtools): fix pre-commit hook - add eslint-config dep, remove type-check 2026-03-17 13:08:51 +01:00
apps feat(local-first): migrate remaining 6 apps to reactive useLiveQuery reads 2026-03-28 02:42:13 +01:00
docker feat(services): create mana-analytics, remove feedback/analytics/ai from auth 2026-03-28 02:29:24 +01:00
docs refactor(infra): remove zitare + clock NestJS backends, add shared-hono package 2026-03-27 22:43:46 +01:00
games feat(whopixels): update Phaser from 3.55.2 to 3.80.1 2026-03-21 15:29:24 +01:00
packages feat(local-first): migrate tags + task stores to reactive liveQuery across all apps 2026-03-28 02:02:52 +01:00
patches fix(traces): configure EAS Build for TestFlight and fix bot-services build 2026-03-17 13:16:38 +01:00
scripts refactor(photos): remove NestJS backend, use local-first + direct mana-media 2026-03-28 02:18:03 +01:00
services feat(services): create mana-auth (Hono + Bun) — Phase 5 auth rewrite 2026-03-28 02:43:44 +01:00
tests/e2e first implementation 2025-11-27 17:26:18 +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 feat(apps): add GPU server fallback to all LLM-using apps 2026-03-27 22:21:20 +01:00
.env.macmini.example feat: add monitoring dashboard (Prometheus + Grafana + Umami + Admin) 2026-01-23 15:31:39 +01:00
.gitignore feat(calendar): add Playwright E2E tests for web app 2026-03-17 13:08:09 +01:00
.npmrc fix(monorepo): add .npmrc with node-linker=hoisted for EAS Build compatibility 2026-03-15 08:50:18 +01:00
.nvmrc feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.prettierignore fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
.prettierrc.json fix(cicd): docker paths, formatting config, 2025-11-27 18:33:08 +01:00
CLAUDE.md feat(services): create mana-analytics, remove feedback/analytics/ai from auth 2026-03-28 02:29:24 +01:00
cloudflared-config.yml feat(infra): add api.mana.how route + Prometheus scrape targets for Go services 2026-03-27 21:27:04 +01:00
docker-compose.dev.yml feat(storage): improve shared-storage robustness, scalability, and DX 2026-03-20 18:52:34 +01:00
docker-compose.macmini.yml feat(services): create mana-analytics, remove feedback/analytics/ai from auth 2026-03-28 02:29:24 +01:00
eslint.config.mjs fix lint 2025-12-04 00:32:13 +01:00
gift-codes-2026-02-14.txt feat(gifts): add gift code creation script and initial codes 2026-02-14 11:23:08 +01:00
jest.config.js first implementation 2025-11-27 17:26:18 +01:00
lint-staged.config.js Fix wrong type 2025-12-04 23:25:25 +01:00
mac-mini-setup.sh feat(infra): add Mac Mini setup script and update production docker-compose 2026-01-23 17:50:51 +01:00
package.json refactor(photos): remove NestJS backend, use local-first + direct mana-media 2026-03-28 02:18:03 +01:00
playwright.config.ts style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
pnpm-lock.yaml feat(local-first): migrate tags + task stores to reactive liveQuery across all apps 2026-03-28 02:02:52 +01:00
pnpm-workspace.yaml feat(mana-media): add centralized media storage with NutriPhi integration 2026-02-02 17:30:14 +01:00
README.md chore: fix config conflicts, update README, clean up apps-archived 2026-03-23 11:06:40 +01:00
test-chat-auth.sh Fix wrong type 2025-12-04 23:25:25 +01:00
TROUBLESHOOTING.md chore: major cleanup of legacy docs, reports, and unused configs 2026-03-23 10:43:11 +01:00
turbo.json fix: add ^build dependency to type-check task 2025-12-10 21:34:07 +01:00
vitest.config.ts first implementation 2025-11-27 17:26:18 +01:00

Manacore Monorepo

Monorepo containing all Manacore projects — a self-hosted multi-app ecosystem with shared packages and unified tooling.

Projects

Project Description Apps
manacore Multi-app ecosystem platform Expo mobile, SvelteKit web
chat AI chat application NestJS backend, Expo mobile, SvelteKit web, Astro landing
todo Task management NestJS backend, SvelteKit web, Astro landing
calendar Calendar & scheduling NestJS backend, SvelteKit web, Astro landing
clock Pomodoro & time tracking NestJS backend, SvelteKit web, Astro landing
contacts Contact management NestJS backend, SvelteKit web
picture AI image generation NestJS backend, Expo mobile, SvelteKit web, Astro landing
manadeck Card/deck management NestJS backend, Expo mobile, SvelteKit web
zitare Daily inspiration quotes NestJS backend, Expo mobile, SvelteKit web, Astro landing
mukke Music player NestJS backend, SvelteKit web
planta Plant care tracker NestJS backend, SvelteKit web
storage Cloud storage NestJS backend, SvelteKit web
questions Q&A with web search SvelteKit web
skilltree Skill tree visualization NestJS backend, SvelteKit web
nutriphi Nutrition tracking NestJS backend, SvelteKit web
citycorners City guide NestJS backend, SvelteKit web, Astro landing
presi Presentation tool NestJS backend, SvelteKit web
photos Photo management NestJS backend, SvelteKit web

Getting Started

Prerequisites

  • Node.js 20+
  • pnpm 9.15.0+
  • Docker (for PostgreSQL, Redis, MinIO)

Installation

pnpm install

Development

# Start infrastructure (PostgreSQL, Redis, MinIO)
pnpm docker:up

# Start any app with auto DB setup
pnpm dev:chat:full
pnpm dev:todo:full
pnpm dev:calendar:full
pnpm dev:contacts:full

# Build & quality
pnpm run build
pnpm run type-check
pnpm run format

See CLAUDE.md for comprehensive development documentation.

Architecture

manacore-monorepo/
├── apps/                    # Product applications
├── services/                # Microservices (auth, search, LLM, bots)
├── packages/                # Shared packages
├── docker/                  # Docker configuration
└── scripts/                 # Development & deployment scripts

Tooling

  • Package Manager: pnpm 9.15.0
  • Build System: Turborepo
  • Formatting: Prettier (tabs, single quotes, 100 char width)
  • Hosting: Mac Mini (self-hosted) via Docker + Cloudflare Tunnel
  • Analytics: Umami (stats.mana.how)

License

Private - All rights reserved