Next.js App Router and Server Components, TypeScript strict mode
nextjs-starter — Next.js Starter Template
By MKSinghDev
A Next.js App Router starter template integrating TypeScript, Tailwind CSS, shadcn/ui, next-intl multilingual support, Biome code checking, and Vitest/Playwright testing, using Bun as the package manager.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Tailwind CSS and shadcn/ui components, with component directories organized by atomic design
next-intl internationalization: regional variant URLs, base-language-plus-override model, YAML dictionaries compiled to JSON
Biome uniformly handles linting, formatting, and import sorting, together with Husky, lint-staged, and Commitlint
Vitest unit/component tests and Playwright end-to-end tests, including a component test coverage governance script
Uses Bun as the package manager, providing scripts such as dev, build, and test-all
Template Details
This template is a Next.js starter project that uses the App Router and Server Components, adopts TypeScript strict mode, and bases styling on Tailwind CSS with integrated shadcn/ui components. Components are organized by atomic design (atoms, molecules, organisms, ui), and routes are located under src/app/[locale].
Internationalization uses next-intl with a base-language-plus-regional-override model: URLs expose only regional variants (en-US, en-GB, es-ES, es-MX, hi-IN), and each regional variant maps to a base language (en, es, hi) via baseOf; base languages do not appear directly in URLs. Dictionaries are written in YAML under locales/ and compiled by scripts/gen-messages.ts into JSON and index.ts under messages/; messages/ is gitignored and regenerated on every build, development run, or type check. At runtime, the base dictionary and regional overrides are deeply merged per request. Key-value types are complete, and useTranslations and t() can autocomplete based on the en reference structure. The README explains that if i18n needs to be removed, you can run the remove-i18n skill or manually remove it by referring to its files.
For code quality, Biome handles linting, formatting, and import sorting; Husky and lint-staged run pre-commit checks; and Commitlint constrains commit messages. Testing includes Vitest unit/component tests and Playwright end-to-end tests, plus a test:governance script that asserts every authored component has a corresponding test under tests/. The project also includes documentation such as CLAUDE.md, AGENTS.md, STANDARDS.md, TESTING.md, and SKILLS.md. The README does not provide information about deployment platforms, performance metrics, or production readiness.
Is it right for your project?
Use Cases
- New projects that need to start with Next.js App Router and TypeScript strict mode
- Building interfaces with Tailwind CSS and shadcn/ui while organizing components by atomic design
- Multilingual solutions requiring next-intl-based regional variant URLs and a base-language-plus-override model
- Projects that want to uniformly use Biome for code checking, formatting, and import sorting and configure pre-commit checks
- Initial configurations requiring Vitest unit/component tests and Playwright end-to-end tests
Suitable For
- Frontend projects using Next.js App Router and expecting to develop in TypeScript strict mode
- Sites that need built-in multilingual support (regional variant URLs, YAML dictionaries)
- Teams that prefer Tailwind CSS and shadcn/ui and accept an atomic design directory structure
- Projects that want to replace ESLint/Prettier with Biome and configure pre-commit checks
- Developers who need baseline configurations for unit/component tests and end-to-end tests
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Prerequisites: Node.js v24 or higher; Bun is recommended, but pnpm, yarn, or npm can also be used
- 2
After cloning the repository, run bun install to install dependencies, use bun dev to start the development server, and visit http://localhost:3000
- 3
i18n dictionaries are written in YAML under locales/ and compiled by scripts/gen-messages.ts into messages/; this directory is gitignored and regenerated during build, development, or type checking
- 4
Common scripts include dev, build, start, lint, format, check-types, test, test:run, test:coverage, test:governance, test:e2e, and test-all
- 5
If i18n needs to be removed, the README explains that you can run the remove-i18n skill or manually remove it by referring to its files
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
https://github.com/MKSinghDev/nextjs-starter/blob/trunk/LICENSEhttps://github.com/MKSinghDev/nextjs-starter/blob/trunk/README.mdPermission is hereby granted, free of charge
Original License Text
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 83 / 100
- Technologies
- Next.js · React
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-11
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15
Inspect the recorded source material
SHA-256: aa8881432f80e8d4a5437b65d4bf8a360596af7a6f3984d656a0c27dd0d15bd0
2026-10-13T22:42:22.025Z
Source file / repository# Next.js Starter Template
A modern Next.js starter template with App Router, TypeScript, Tailwind CSS v4, shadcn/ui, and a comprehensive linting setup.
## Features
- **Next.js 16** with App Router and Server Components
- **TypeScript** in strict mode
- **Tailwind CSS v4** with shadcn/ui components
- **Atomic Design** component architecture (atoms, molecules, organisms)
- **next-intl** i18n with base+overlay locale model and YAML-authored dictionaries
- **Biome** for linting, formatting, and import sorting (one tool, fast)
- **Husky & lint-staged** for pre-commit code quality checks
- **Commitlint** for conventional commit messages
- **Bun** as the package manager
## Getting Started
### Prerequisites
- Node.js (v24 or later)
- [Bun](https://bun.sh/) (recommended) or any package manager (`pnpm`, `yarn`, `npm`)
### Installation
```bash
git clone https://github.com/MKSinghDev/nextjs-starter.git
cd nextjs-starter
bun install
```
### Development
```bash
bun dev
```
Open [http://localhost:3000](http://localhost:3000) in your browser.
## Scripts
| Script | Description |
| ---------------- | ---------------------------------------------------------------- |
| `dev` | Compile i18n YAML once, then run watcher + Next dev in parallel |
| `build` | Compile i18n YAML, then build for production |
| `start` | Start the production server |
| `gen:i18n` | Compile `messages/**/*.yaml` → sibling `.json` (source of truth) |
| `gen:i18n:watch` | Same as `gen:i18n` plus chokidar watcher for live regen |
| `lint` | Lint with Biome |
| `lint:fix` | Lint and auto-fix with Biome |
| `format` | Format code with Biome |
| `check-types` | Compile i18n YAML, then type-check with TypeScript |
| `check-format` | Check formatting without writing |
| `check-lint` | Lint without writing |
| `test` | Run unit/component tests (Vitest) in watch mode |
| `test:run` | Run unit/component tests once |
| `test:coverage` | Run unit/component tests with coverage thresholds |
| `test:governance`| Assert every authored component has a mirror test in `tests/` |
| `test:e2e` | Run Playwright end-to-end tests |
| `test-all` | Run format, lint, type-check, governance, coverage, and build |
## Project Structure
```
.
├── locales/ # i18n YAML source (committed)
│ ├── en/ # base locale (full dict)
│ ├── en-GB/ en-US/ # regional overlays (partial deltas or .gitkeep)
│ ├── es/ es-ES/ es-MX/
│ └── hi/ hi-IN/
├── messages/ # i18n generated output (JSON + index.ts, GITIGNORED)
├── scripts/
│ ├── gen-messages.ts # locales/ → messages/ compiler (one-shot + watch)
│ └── test-governance.ts # asserts every component has a mirror test
├── tests/ # unit/component tests (Vitest), mirrors src/ tree
│ └── support/ # shared test helpers (renderWithIntl)
├── e2e/ # end-to-end tests (Playwright)
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── [locale]/ # all routes nested under locale segment
│ │ │ └── (pages)/ # route groups for pages
│ │ ├── globals.css # Global styles
│ │ └── layout.tsx # Root layout
│ ├── components/
│ │ ├── atoms/ # Basic building blocks (no internal deps)
│ │ ├── molecules/ # Composed from atoms only
│ │ ├── organisms/ # Composed from atoms and/or molecules
│ │ └── ui/ # shadcn/ui components (CLI-managed)
│ ├── hooks/ # Shared custom hooks
│ ├── i18n/ # routing, base/overlay loaders, request config
│ ├── lib/ # Utilities, constants, interfaces, config
│ ├── global.d.ts # AppConfig augment + MessageShape/MessageOverride
│ └── proxy.ts # next-intl locale middleware (Next 16 name)
├── CLAUDE.md # AI agent instructions (imports the files below)
├── AGENTS.md # Next.js agent rules
├── STANDARDS.md # Project coding standards
├── TESTING.md # Testing standards (unit/component + E2E)
├── SKILLS.md # Recommended Claude Code skills
├── biome.json # Biome lint + format configuration
├── next.config.ts # Next.js configuration (wrapped with next-intl plugin)
└── tsconfig.json # TypeScript configuration
```
## Internationalization
- URL locales are **regional variants only** (`en-US`, `en-GB`, `es-ES`, `es-MX`, `hi-IN`). Listed in `src/i18n/routing.ts`. Default locale serves on clean paths (`/`, `/users`) via `localePrefix: 'as-needed'`; non-default keeps the prefix (`/es-MX`, `/es-MX/users`)
- Each regional variant maps to a **base locale** (`en`, `es`, `hi`) via `baseOf` in `src/i18n/bases.ts`. Bases are never URL-addressable
- Dictionaries authored in **YAML** under `locales/<locale>/*.yaml` (committed). Compiled to `messages/<locale>/*.json` + per-locale `index.ts` by `scripts/gen-messages.ts` (`messages/` is fully gitignored; regenerated on every build / dev / check-types)
- Runtime deep-merges base dict + regional overlay per request. Overlays hold only the keys that differ
- Keys are fully type-checked — `useTranslations('home')` and `t('title')` autocomplete against the `en` reference shape
Adding or editing translations, and the full locale-addition recipe, lives in [STANDARDS.md](./STANDARDS.md#internationalization-i18n).
**Don't need i18n?** Ask Claude to _"remove i18n"_ and it runs the `remove-i18n` skill at [`.claude/skills/remove-i18n/SKILL.md`](./.claude/skills/remove-i18n/SKILL.md) — that same file also serves as the manual removal checklist if you'd rather strip it by hand.
## Standards
See [STANDARDS.md](./STANDARDS.md) for the full coding standards covering naming conventions, component architecture, styling, and more, and [TESTING.md](./TESTING.md) for the testing standards (unit/component + E2E).
## Claude Code Skills
This project recommends a set of Claude Code skills that extend the AI agent with project-specific tooling (e.g. shadcn component registry access). See [SKILLS.md](./SKILLS.md) for the list and install commands.
## License
This project is licensed under the [MIT License](./LICENSE).
Explore similar templates
Compare previews and descriptions within the same stack and category.

Next.js SaaS Starter
The official Next.js SaaS starter template, integrating email/password authentication, Stripe Checkout subscriptions, a dashboard with user/team CRUD, basic Owner/Member RBAC, and activity logging.
Next.js · SaaS

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

Next-js-Boilerplate
A developer-first Next.js 16 starter with Tailwind CSS 4 and TypeScript, supporting both App Router and Page Router.
Next.js · Starter

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

next-forge
next-forge is a Turborepo-based Next.js template maintained by Vercel, positioned as a starting point for SaaS products.
Next.js · Starter

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS
