Mirror of github.com/Memo-2023/mana-monorepo
Find a file
Till JS 94d7e2bd02 feat(citycorners): add slugs, contacts, collections, clustering, rate limiting, soft deletes
1. SEO Slugs: Auto-generated from name (ä→ae, ö→oe, etc.), unique with
   -2/-3 suffix. Routes accept both UUID and slug. Seed data includes slugs.

2. Opening Hours + Contact: website, phone, openingHours fields in schema.
   Displayed on detail page, editable in add/edit forms.

3. Landing Page with API: Fetches locations from backend at build time,
   falls back to hardcoded JSON if API unreachable.

4. Frontend Tests: Vitest setup with api.test.ts (50 backend + web tests).

5. Marker Clustering: leaflet.markercluster for 10+ locations on map,
   direct markers for fewer.

6. Favorite Collections: New collections table with CRUD endpoints.
   Favorites page has tabs for favorites vs collections. Create, view,
   delete collections with location management.

7. Rate Limiting: In-memory guard (10 req/min) on write endpoints.
   Returns 429 with retryAfter.

8. Soft Deletes: deletedAt field, all reads filter deleted records.
   POST /locations/:id/restore endpoint for owners.

50 backend tests passing, 0 type errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:27:29 +01:00
.changeset feat(versioning): add semantic versioning and changesets to all apps 2026-03-19 16:20:18 +01:00
.claude chore: remove stale docs and outdated design plans 2026-03-23 11:15:29 +01:00
.github feat: add org landing page builder service 2026-03-23 13:20:10 +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(citycorners): add slugs, contacts, collections, clustering, rate limiting, soft deletes 2026-03-24 12:27:29 +01:00
docker feat(infra): add Cloudflare fallback plan + self-hosted landing pages 2026-03-24 12:07:40 +01:00
docs feat(skilltree): add achievement system with 26 achievements + monetization report 2026-03-24 12:17:43 +01:00
games feat(whopixels): update Phaser from 3.55.2 to 3.80.1 2026-03-21 15:29:24 +01:00
packages fix(credit-operations): export TypeScript source directly 2026-03-24 11:31:20 +01:00
patches fix(traces): configure EAS Build for TestFlight and fix bot-services build 2026-03-17 13:16:38 +01:00
scripts feat(skilltree): add achievement system with 26 achievements + monetization report 2026-03-24 12:17:43 +01:00
services fix(infra): add healthcheck start_period, restore shared-llm dep in project-doc-bot 2026-03-24 11:48:13 +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 chore: remove dead Supabase keys and leaked API keys from env config 2026-03-23 11:25:24 +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: add org landing page builder service 2026-03-23 13:20:10 +01:00
cloudflared-config.yml feat(infra): add Cloudflare fallback plan + self-hosted landing pages 2026-03-24 12:07:40 +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(infra): add Cloudflare fallback plan + self-hosted landing pages 2026-03-24 12:07:40 +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 feat: add it.mana.how landing page for European tech sovereignty 2026-03-24 10:04:59 +01:00
playwright.config.ts style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
pnpm-lock.yaml feat(citycorners): add slugs, contacts, collections, clustering, rate limiting, soft deletes 2026-03-24 12:27:29 +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