Learn how ShipThing apps and packages are structured.
NEXT_PUBLIC_APP_URL
, NEXT_PUBLIC_WEB_URL
, and NEXT_PUBLIC_API_URL
.
Each app should be self-contained and not depend on other apps. They should have an env.ts
file at the root of the app that composes the environment variables from the packages it depends on.
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.
Each package should be self-contained and not depend on other packages. They should export everything that is needed by the app — middleware, hooks, components and even the environment variables.
pnpm run boundaries
to check for any violations.