Skip to main content
NextStarter
Menu

Documentation

What the starter includes, how these pages are organised, and the two conventions that run through the codebase.

What the starter includes

NextStarter is a Next.js 16 App Router project with TypeScript in strict mode, Tailwind CSS v4, shadcn/ui components on Radix primitives, light and dark themes, and a Playwright test suite that runs an Axe-core accessibility scan in both themes. GitHub Actions lints, type-checks, tests, and runs Lighthouse on every push. Cookieless PostHog analytics is wired in but switched off until you add a key.

It is MIT licensed and there is nothing to sign up for.

In these docs

Two conventions worth knowing

Both of these run through the whole codebase. Follow them when you add to it.

  1. Optional features are switched on by configuration. Each one reads a single flag derived from an environment variable, such as isAnalyticsEnabled in src/lib/analytics.ts. With the variable blank, the feature does nothing: no script loads, no link renders, and any route it owns returns a 404. The navigation, the sitemap, and the privacy notice all read the same flag, so they can never point at something that is switched off. The app builds, runs, and passes CI with no keys at all.
  2. Accessibility is tested, not assumed. Every page is scanned with Axe-core in light and dark mode, and CI fails on any violation. New UI is held to the same WCAG 2.1 AA bar. See Testing & CI.