polywall/
├── docs/ # MkDocs documentation
├── e2e/ # Playwright scenarios
├── prisma/ # schema, migrations, and seed
├── public/ # static assets
├── src/
│ ├── actions/ # server-side mutations
│ ├── app/ # Next.js pages and API routes
│ ├── components/ # domain and UI components
│ ├── hooks/ # React hooks
│ ├── lib/ # services and domain rules
│ ├── schemas/ # Zod validation
│ ├── test/ # shared fixtures and mocks
│ └── workers/ # BullMQ media worker
├── docker-compose*.yaml
├── mkdocs.yml
└── package.json
A typical domain feature touches the Prisma model and migration, Zod input schema, CASL rule, Server Action or API route, UI components, automated tests, and relevant documentation.
Adding a widget also requires catalog metadata, seed registration, template-editor controls, runtime rendering, an optional data service, default configuration, refresh policy, and tests.
The @/ alias resolves to src/. Prisma generates types under src/generated/prisma. do not edit generated files manually.