Thanks for your interest in contributing! ❤️ This guide covers local setup, scripts, and CI checks.
- Node 24+
- pnpm 10+
- Install dependencies:
pnpm install- Create a local environment file:
# macOS / Linux
cp .env.example .env# Windows (PowerShell)
copy .env.example .env- Configure GitHub OAuth in
.env:
NUXT_OAUTH_GITHUB_CLIENT_ID=
NUXT_OAUTH_GITHUB_CLIENT_SECRET=
NUXT_SESSION_PASSWORD=- Create a GitHub OAuth app and copy the credentials:
- GitHub settings: https://github.com/settings/developers
- Create an OAuth app with:
- Homepage URL:
http://localhost:3000 - Authorization callback URL:
http://localhost:3000/auth/github
- Homepage URL:
- Copy the client ID and secret into
.env - Set
NUXT_SESSION_PASSWORDto a long random string
For details, see GitHub's docs: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app
- Start the dev server:
pnpm dev# Development
pnpm dev
# Lint and type checks
pnpm lint
pnpm test:types
# Tests
pnpm test
pnpm test:watch
pnpm test:unit
pnpm test:nuxt
pnpm test:coverage
# Unused code checks
pnpm knip
pnpm knip:fix
# i18n validation
pnpm i18n:report
pnpm i18n:report:fix
# updating i18n/schema.ts
pnpm i18n:schema
# Build and preview
pnpm build
pnpm previewCI runs these checks on every PR and push to main:
pnpm lintpnpm test:typespnpm test:unitpnpm test:nuxtpnpm knipandpnpm knip --productionpnpm i18n:reportpnpm i18n:schema(must keepi18n/schema.jsonupdated)pnpm auditpnpm build
- Open an issue or discussion if you want to propose larger changes.
- Keep changes focused and include tests when it makes sense.
- Ensure the CI checks above pass before requesting review.