Contribute
Overview
How the Frigear repository is laid out, the rules every change follows and where each contributor guide is.
This tab is for people and coding agents who change the Frigear repository,
Frigear-nu/frigear-nu, itself: fixing a module, writing a new one, updating a starter or editing these docs. This page
shows where each kind of code lives and the rules every change follows. To build an app on the published modules,
start at Get Started instead.
Repository layout
The repository is one pnpm workspace. The root README.md lists the current apps and packages.
| Folder | Kind | What lives there |
|---|---|---|
apps/website | Host app | The Frigear website app. It installs 18 modules on top of the base layer. |
apps/docs | App | This documentation site, built with Docus. |
packages/base-layer | Base layer | @frigear-nu/base: shared Nuxt config, interface defaults and content-driven pages. |
packages/<module> | Module | One Nuxt module per feature, such as users or stripe, published as @frigear-nu/<module>. |
packages/cli | Package | @frigear-nu/cli, which creates projects from the starters and scaffolds apps and modules. |
packages/create-frigear-app | Package | create-frigear-app, which runs the latest CLI's init for pnpm create frigear-app. |
packages/eslint-config | Package | @frigear-nu/eslint-config, the shared lint rules. |
.starters/* | Starters | Projects to copy for a new host app. They sit outside the pnpm workspace and use published versions. |
Packages depend on each other with workspace:^. Four kinds of code
explains each kind.
Conventions
- Run every command from the repository root, also for one app or package. Scope it with
--filter, spelled out:-fmeans--forcein pnpm. For example,pnpm --filter @frigear-nu/docs dev. - Never install in a subfolder. Running
pnpm,npm installoryarninside a package desyncs the lockfile. - Nuxt 4 only. Introduction explains why.
- Conventional Commits:
feat:,fix:,chore:. - Changesets. When the repository has a
.changeset/folder, add one for any change to a published package (pnpm changeset). Apps need none. - Before you finish, run
pnpm lint,pnpm typecheckandpnpm testfrom the root. Runpnpm buildtoo when you changenuxt.config.ts, packageexportsor build tooling. CI runs lint, tests and the package builds, not typecheck. - Never commit generated or dependency files:
node_modules/,.nuxt/,.output/,.data/anddist/.
The full rules, for agents and humans alike, are in
AGENTS.md at the repository root. They also cover authentication
in server routes, HTTP routes, database schemas and UX patterns. When a script or a package README differs from
AGENTS.md, the local source wins: update AGENTS.md to match.In this tab
| Page | Use it to |
|---|---|
| Local development | Install the repository, set the environment, and run, build and check it. |
| Scaffold a module | Start a new module. Then follow Setup checklist, Database tables and Testing. |
| Publishing | Release a package to npm. |
| Starters | Maintain the starters in .starters/. |
| Documentation | Add or move a page in these docs. |
| CLI and ESLint config | Use the repository's own tools. |
Next steps
- Local development – get the repository running before you change anything.
- Scaffold a module – start here when your change is a new module.