Next.js web client for the Guitar0 guitar education platform.
| Layer | Technology |
|---|---|
| Language | TypeScript 5 |
| Framework | Next.js 16 · React 19 |
| Styling | Tailwind CSS 4 · shadcn/ui |
| API client | openapi-fetch (typed via OpenAPI) |
| State | Zustand |
| Analytics | PostHog |
| Testing | Vitest · Playwright |
| Linting | ESLint · Prettier · tsc |
| Packaging | npm |
- Node.js 24+
cp .env.example .env
npm ci
make devApp is available at http://localhost:3000.
make help list all available commands
make lint ESLint
make typecheck TypeScript type check
make test Vitest with coverage report
make ci lint + format + typecheck + test
make dev start development server
make build production build
make e2e run Playwright E2E tests
first run: npx playwright install chromium
src/types/api.d.ts is auto-generated from schemas/openapi.yaml. Run npm run api:generate to regenerate after backend changes; CI verifies the committed file stays in sync with the live schema at api.staging.guitar0.net.
src/app/ Next.js App Router pages and layouts
src/components/ reusable UI components; ui/ contains shadcn/ui primitives
src/features/ feature modules (chords, courses, lessons, …)
src/lib/ API client, analytics, shared utilities
src/store/ Zustand stores
src/types/ shared TypeScript types
e2e/ Playwright E2E tests
schemas/ OpenAPI schema
GNU Affero General Public License v3.0 or later. All source files carry SPDX headers and are REUSE compliant.