https://github.com/omergulcicek/nextjs-boilerplate
π Modern Next.js 15 boilerplate with TypeScript & Tailwind CSS
https://github.com/omergulcicek/nextjs-boilerplate
boilerplate eslint husky lucide next-themes nextjs nextjs-boilerplate prettier radix-ui react react-hook-form shadcn-ui tailwindcss tanstack-query typescript zod zustand
Last synced: about 1 month ago
JSON representation
π Modern Next.js 15 boilerplate with TypeScript & Tailwind CSS
- Host: GitHub
- URL: https://github.com/omergulcicek/nextjs-boilerplate
- Owner: omergulcicek
- License: mit
- Created: 2023-10-08T19:12:35.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-30T17:47:46.000Z (2 months ago)
- Last Synced: 2025-07-30T20:34:58.857Z (2 months ago)
- Topics: boilerplate, eslint, husky, lucide, next-themes, nextjs, nextjs-boilerplate, prettier, radix-ui, react, react-hook-form, shadcn-ui, tailwindcss, tanstack-query, typescript, zod, zustand
- Language: TypeScript
- Homepage: https://nextjs15-boilerplate.vercel.app/en/
- Size: 985 KB
- Stars: 44
- Watchers: 2
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Next.js Boilerplate
Modern **Next.js 15.3** boilerplate with **TypeScript** & **Tailwind CSS**
Live Demo: https://nextjs15-boilerplate.vercel.app/en
## Features
With this template, you get all the awesomeness you need:
- π Advanced Folder Structures
- β‘ [Next.js](https://nextjs.org/) with App Router support
- π Type checking [TypeScript](https://www.typescriptlang.org/)
- π¨ Styled using [Tailwind CSS](https://tailwindcss.com/)
- π¦ State management with [Zustand](https://zustand-demo.pmnd.rs/)
- πΊοΈ [next-intl](https://next-intl.dev/) for internationalization
- π§© UI Components built with [shadcn/ui](https://ui.shadcn.com/)
- π Data Fetching, Caching and Mutation with [TanStack Query](https://tanstack.com/query/latest)
- β¨οΈ Form handling with [React Hook Form](https://react-hook-form.com/)
- π΄ Validation library with [Zod](https://zod.dev/)
- πΈ Smart masking and validation with [@omergulcicek/forms](https://www.npmjs.com/package/@omergulcicek/forms)
- π§Ή Linter with [ESLint](https://eslint.org/)
- π Code Formatter with [Prettier](https://prettier.io/)
- π [Storybook](https://storybook.js.org/) for UI development
- π¨ Error tracking with [Sentry](https://sentry.io/)
- π Analytics with [Google Analytics](https://analytics.google.com/)
- β³ Loading UI using [Skeleton Components](https://ui.shadcn.com/docs/components/skeleton)
- π Dark theme with [next-themes](https://npmjs.com/package/next-themes)
- π‘ [Absolute Imports](https://nextjs.org/docs/pages/building-your-application/configuring/absolute-imports-and-module-aliases) with `@` prefix
- β¨ Beautiful and consistent icons from [Lucide](https://lucide.dev/)
- πΆ [Husky](https://typicode.github.io/husky/) for Git Hooks
- π€ Sitemap.xml and robots.txt
- βοΈ Metadata files optimized for SEO
- πͺ Storage helpers for Local, Session, Cookies
- π― Maximize lighthouse score## Project structure
```shell
β
βββ .husky # Husky git hook scripts
βββ messages # i18n messages
βββ public # Public assets folder
βββ src
β βββ app # Next JS App (App Router)
β βββ assets # Static assets (images, fonts, etc.)
β βββ components # React components
β β βββ icons # svg icons
β β βββ features # Components with hooks and calculations
β β βββ shared # Header, footer, aside components
β β βββ skeletons # Loading components
β β βββ ui # Atomic components
β β βββ widgets # Advanced UI components
β βββ constants # Project-wide constants
β βββ data # Static or mock data
β βββ helpers # Reusable utility functions (e.g., API, formatting, storage)
β βββ hooks # Reusable custom React hooks
β βββ i18n # Internationalization setup
β βββ lib # Common utility functions
β βββ providers # Global context providers (theme, data fetching, notifications, i18n)
β βββ schemas # Validation schemas
β βββ services # API request functions
β βββ stores # Global state
β βββ types # TypeScript type definitions
β βββ .middleware # Middleware for Next.js
βββ .env # Environment variables
βββ .gitignore # Git ignore rules
βββ .prettierrc # Prettier config
βββ components.json # shadcn/ui config
βββ eslint.config.mjs # ESLint config
βββ next.config.mjs # Next.js config
βββ package.json # Project dependencies and scripts
βββ postcss.config.js # PostCSS config
βββ README.md # README file
βββ tailwind.config.js # Tailwind CSS config
βββ tsconfig.json # TypeScript config
```## File Naming Conventions
The project follows consistent file naming conventions:
| File Type | Example | Style |
| -------------- | ---------------- | ---------- |
| Component | `LoginForm.tsx` | PascalCase |
| Hook | `useLogin.ts` | camelCase |
| Helper, Schema | `form-schema.ts` | kebab-case |
| Folder | `login-form/` | kebab-case |
| Constants | `ALPHA_REGEX` | SNAKE_CASE |## Monitoring & Analytics
π§ Don't forget to replace all FIXME tags with proper code before finalizing the changes.
### Error Tracking
We use [Sentry](https://sentry.io/) for error tracking and performance monitoring. To set up:
1. Create a Sentry account
2. Add your DSN to `.env`:```env
NEXT_PUBLIC_SENTRY_DSN=your-sentry-dsn
```### Analytics
We use [Google Analytics](https://analytics.google.com/) for tracking user behavior. To set up:
1. Create a Google Analytics account
2. Add your ID to `.env`:```env
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
```### Contributors
- [@omergulcicek](https://github.com/omergulcicek)