Package responsibilities
This page should answer the question: Which implementation belongs into which package of the monorepo? Currently, we have the following packages:
appdocslibtypeseslint-configprettier-config
The challenge is to maintain separation of concerns for each package. The following sections list the responsibilities of each package.
app
- the main application that consumes the
lib&typespackage - Next.js pages that import components from
lib - API implementation
- application state
- routing (via Next.js pages router (opens in a new tab))
- error logging (via Sentry (opens in a new tab))
- E2E tests (via Playwright (opens in a new tab))
docs (this)
- documentation for the whole Essencium project
- getting started
- architecture
- development guide
- style guide
lib
- single Next.js components
- specific hooks
- specific utility functions
types
- shared types ('shared' means types that are used in
appandlibtogether) - zod schemas
eslint-config
- exports a ESLint config that is consumed by the other packages
- is published as a npm package
prettier-config
- exports a Prettier config that is consumed by the other packages
- is published as a npm package