Skip to content

Repository files navigation

Bike Condition

Next.js app for tracking wear on bicycle components using Strava ride data.

Tech stack

Next.js 16 (App Router, Turbopack) · React 19 · TypeScript 5.9 (strict) · Auth.js v5 (Strava OAuth) · Supabase · Tailwind CSS v4 · shadcn/ui · Biome (format + lint) · Husky (git hooks).

Getting started

pnpm install   # also installs Husky hooks via the `prepare` script
pnpm dev       # http://localhost:3000

Required env vars in .env.local — see CLAUDE.md for the full list (Strava OAuth, Supabase, Auth.js secret, optional Resend).

Scripts

Script Purpose
pnpm dev Start the dev server (Turbopack).
pnpm build Production build.
pnpm start Run the production build.
pnpm typecheck tsc --noEmit.
pnpm lint Biome format + lint check (no writes).
pnpm lint:fix Biome with safe auto-fixes.
pnpm format Format the repo with Biome.
pnpm format:check Check formatting without writing.

Pre-commit hook

Husky runs a pre-commit hook (.husky/pre-commit) on every commit:

  1. lint-staged → Biome auto-formats and lints the staged files in place. Configured in package.json under lint-staged to run against *.{ts,tsx,js,jsx,mjs,cjs,json,jsonc,css}. Files under src/components/ui/ are skipped because they are generated by the shadcn CLI.
  2. pnpm typecheck runs tsc --noEmit across the whole project so type errors block the commit.

The hook is installed automatically by the prepare script during pnpm install. If hooks are not firing, re-run pnpm exec husky to re-install.

To bypass the hook in an emergency (discouraged): git commit --no-verify.

Biome configuration

biome.json enables both the formatter and linter with these conventions: 2-space indent, double quotes, semicolons, 100-character line width, ES5 trailing commas. Lint uses Biome's recommended rule set with a few project-specific overrides (a11y rules tuned for decorative icons, etc.). Biome handles everything ESLint used to — there is no ESLint config in the repo.

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages