Repository Layout
Marketlum is a pnpm workspace monorepo. The split between apps/ and packages/ reflects a deliberate boundary: apps/ is what end users get when they scaffold a project; packages/ is what they consume as npm dependencies.
marketlum/
├── apps/
│ ├── api/ Reference NestJS app (mirrors the scaffolded template)
│ ├── web/ Reference Next.js app (mirrors the scaffolded template)
│ └── docs/ Docusaurus docs site
├── packages/
│ ├── core/ @marketlum/core — NestJS modules, entities, services, migrations
│ ├── ui/ @marketlum/ui — React components, admin pages, hooks, i18n
│ ├── shared/ @marketlum/shared — Zod schemas, TS types, enums, state machines
│ ├── bdd/ @marketlum/bdd — Gherkin feature files (test contract)
│ └── create-marketlum-app/ Scaffolder CLI + template
├── docker-compose.yml Local Postgres
└── pnpm-workspace.yaml
apps/
apps/api
The reference NestJS application that exercises @marketlum/core. It is also where BDD step definitions live (apps/api/test/). When you change something in apps/api/src, check whether the equivalent file in packages/create-marketlum-app/template/api/ needs the same update.