next-forge contains a number of shared packages that are used across the monorepo. The purpose of these packages is to isolate shared code from the main app, making it easier to manage and update.

Additionally, it makes it easier to swap out parts of the app for different implementations. For example, the database package contains everything related to the database, including the schema and migrations. This allows us to easily swap out the database provider or ORM without impacting other parts of the app.

PackageDescription
analyticsAnalytics systems.
authAuthentication provider.
databaseDatabase schema and migrations.
design-systemContains shared components, utility files and styles.
emailEmail functionality, including provider SDK and templates.
envEnvironment variables.
feature-flagsFeature flags.
next-configShared Next.js configuration.
observabilityObservability utilities, including logging, error handling and uptime monitoring.
paymentsPayments and billing functionality.
seoSearch engine optimization, including metadata and structured data.
tailwind-configShared Tailwind CSS configuration.
typescript-configShared TypeScript configuration.