Skip to main content

Choose a repository profile

Select the smallest Lupinum starter that fits the product.

Choose a profile from the number of independently consumed packages and from the need for deployment. Do not create a new profile for each framework.

Single-package library

Use the single-package library when one repository publishes one npm package. Keep package source at the repository root. Keep the documentation app in docs/.

This profile fits a Nuxt module, Vue library, or framework-neutral package that has one release version.

Package monorepo

Use the package monorepo when one product publishes two or more packages. Keep published packages in packages/. Keep the documentation app in docs/.

Use fixed versions when the packages form one product and are tested together. Use independent versions only when consumers can upgrade each package without coordinating the others.

Deployed app

Use the deployed-app profile when the repository deploys a product but does not publish an npm package. Do not add npm publication files to this profile.

The app still needs CI, dependency controls, security reporting, deployment checks, a rollback procedure, and agent-readable maintenance instructions.

Decision table

ProductProfile
One published package with docsSingle-package library
Several related published packages with one docs sitePackage monorepo
Website or service with no public packageDeployed app
One package plus examplesSingle-package library
Several unrelated packagesSeparate repositories unless shared ownership is necessary

Do not force visual symmetry

The public and operational surfaces must be consistent. Source trees need only follow the selected profile and the framework's normal structure. Do not move working source code only to make two repositories look alike.