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
- Getting StartedScaffold a new project, choose a starting point, and have it running locally in a couple of minutes.
- Environment VariablesEvery environment variable the starter reads, what each one does, and which are safe to leave blank.
- CustomizationRebrand the starter and replace its example content: name, colours, navigation, landing page, and components.
- AnalyticsTurn on cookieless PostHog analytics, the two settings that silently break it, and what going cookieless costs.
- Testing & CIThe Playwright and Axe-core test suite, Lighthouse CI, and every job the GitHub Actions workflow runs.
- DeploymentDeploy to Vercel or any Node host, and the checks worth running once the site is live.
Two conventions worth knowing
Both of these run through the whole codebase. Follow them when you add to it.
- Optional features are switched on by configuration. Each one reads a single flag derived from an environment variable, such as
isAnalyticsEnabledinsrc/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. - 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.