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
| Product | Profile |
|---|---|
| One published package with docs | Single-package library |
| Several related published packages with one docs site | Package monorepo |
| Website or service with no public package | Deployed app |
| One package plus examples | Single-package library |
| Several unrelated packages | Separate 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.