Monorepo Structure โ Frontpics
Frontpics is a pnpm/Turborepo workspace.
Rootโ
frontpics/
apps/
api/ NestJS API
web/ Next.js app
docs/ Docusaurus documentation
packages/
database/ Prisma schema, migrations, generated client
shared/ shared enums, Zod schemas, types, utilities
config/ shared TypeScript config
infrastructure/
scripts/ VPS/bootstrap/deployment scripts
media/ local media/supporting assets
apps/apiโ
NestJS 11 API using Fastify.
Important areas:
apps/api/src/
app.module.ts
main.ts
config/
common/
decorators/
filters/
interceptors/
pipes/
utils/
modules/
admin/
audit/
auth/
database/
email/
feedback/
images/
incoming-emails/
invoices/
licenses/
mailer/
notifications/
orders/
payouts/
photographers/
queue/
redis/
shooting-requests/
storage/
tags/
telemetry/
upload/
users/
wallets/
Rules:
BullModule.forRoot()belongs only inAppModule.- Feature modules register queues with
BullModule.registerQueue(). - Import
IMAGE_PROCESS_QUEUEfromqueue.constants.ts. - API TypeScript uses NodeNext.
apps/webโ
Next.js 16 App Router app.
Important areas:
apps/web/src/
app/
[locale]/
admin/
auth/
buyer/
moderator/
payroll/
photographer/
images/
page.tsx
layout.tsx
globals.css
components/
admin/
common/
images/
photographer/
ui/
hooks/
i18n/
dictionaries/
lib/
proxy.ts
Rules:
- Route protection and i18n redirects belong in
src/proxy.ts. - UI translations live in all supported dictionaries:
fi.json,en.json,sv.json. - Generated docs live in
public/docs; edit docs source underapps/docs.
apps/docsโ
Docusaurus 3 source docs.
apps/docs/docs/
staff/
fi/staff/
en/users/
fi/users/
Build output is apps/docs/build.
packages/databaseโ
Owns Prisma schema and generated client.
packages/database/
prisma/
schema.prisma
migrations/
seed.ts
src/
index.ts
generated/prisma/
Always check schema.prisma before using model fields.
packages/sharedโ
Shared enums, schemas, and type helpers used by API and web.
Use this package for contracts that need to be understood by both sides, such as roles, statuses, image schemas, shooting request schemas, and formatting helpers.
packages/configโ
Shared TypeScript base configuration.
Deployment Filesโ
docker-compose.yml
docker-compose.infra.yml
docker-compose.blue.yml
docker-compose.green.yml
infrastructure/scripts/
The blue/green compose files define application stacks. docker-compose.infra.yml defines shared PostgreSQL and Redis services.