Packages
Reusable application and configuration packages including auth, database, email, UI components, and development tools
Monorepo Packages
This section provides an overview and deep dives for each package in the monorepo. Packages are internal libraries that provide reusable code, configuration, and utilities shared across applications.
Application Packages
These packages provide core functionality used by the web and API applications:
- @workspace/auth - Authentication with Better Auth, session management, and OAuth
- @workspace/db - Prisma ORM, database schema, and PostgreSQL client
- @workspace/ui - React component library built with shadcn/ui and Tailwind CSS
- @workspace/email - React Email templates and Resend integration
- @workspace/utils - Shared utility functions and TypeScript types
- @workspace/rate-limit - API rate limiting with Upstash Redis
Configuration Packages
These packages provide shared configuration for development tooling:
- @workspace/eslint-config - Unified ESLint rules for the monorepo
- @workspace/prettier-config - Consistent code formatting configuration
- @workspace/typescript-config - Shared TypeScript compiler options
- @workspace/jest-presets - Jest testing configuration for Node.js/API workspaces
- @workspace/vitest-presets - Vitest testing configuration for web and node workspaces
How Packages Work
Each package is self-contained with its own:
package.json- Dependencies and scriptstsconfig.json- TypeScript configuration (extends base)jest.config.tsorvitest.config.ts- (if testing is included)src/- Source code and type definitions
Packages are published internally and can be imported using @workspace/package-name in any app or package.
Using Packages
Import from any package in your code:
// From web or API applications
import { useSession } from "@workspace/auth";
import { prisma } from "@workspace/db";
import { Button } from "@workspace/ui";
import { formatDate } from "@workspace/utils";See individual package documentation for detailed API reference and usage examples.