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.

FolderKindWhat lives there
apps/websiteHost appThe Frigear website app. It installs 18 modules on top of the base layer.
apps/docsAppThis documentation site, built with Docus.
packages/base-layerBase layer@frigear-nu/base: shared Nuxt config, interface defaults and content-driven pages.
packages/<module>ModuleOne Nuxt module per feature, such as users or stripe, published as @frigear-nu/<module>.
packages/cliPackage@frigear-nu/cli, which creates projects from the starters and scaffolds apps and modules.
packages/create-frigear-appPackagecreate-frigear-app, which runs the latest CLI's init for pnpm create frigear-app.
packages/eslint-configPackage@frigear-nu/eslint-config, the shared lint rules.
.starters/*StartersProjects 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: -f means --force in pnpm. For example, pnpm --filter @frigear-nu/docs dev.
  • Never install in a subfolder. Running pnpm, npm install or yarn inside 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 typecheck and pnpm test from the root. Run pnpm build too when you change nuxt.config.ts, package exports or build tooling. CI runs lint, tests and the package builds, not typecheck.
  • Never commit generated or dependency files: node_modules/, .nuxt/, .output/, .data/ and dist/.
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

PageUse it to
Local developmentInstall the repository, set the environment, and run, build and check it.
Scaffold a moduleStart a new module. Then follow Setup checklist, Database tables and Testing.
PublishingRelease a package to npm.
StartersMaintain the starters in .starters/.
DocumentationAdd or move a page in these docs.
CLI and ESLint configUse the repository's own tools.

Next steps

Copyright © 2026