Next.js Starter Template
GitHub - Skolaczk/next-starter: A Next.js starter template, packed with features like TypeScript, Tailwind CSS, Next-auth, Eslint, Stripe, testing tools and more. Jumpstart your project with efficiency and style.




  Features ·
  Deployment ·
  Getting started ·
  Scripts overview ·
  Contribution ·
  Support

🎉 Features

🚀 Next.js 15 (App router)
⚛️ React 18
📘 Typescript
🎨 TailwindCSS - Class sorting, merging and linting
🛠️ Shadcn/ui - Customizable UI components
💵 Stripe - Payment handler
🔒 Next-auth - Easy authentication library for Next.js (GitHub provider)
🛡️ Prisma - ORM for node.js
📋 React-hook-form - Manage your forms easy and efficient
🔍 Zod - Schema validation library
🧪 Jest & React Testing Library - Configured for unit testing
🎭 Playwright - Configured for e2e testing
📈 Absolute Import & Path Alias - Import components using @/ prefix
💅 Prettier - Code formatter
🧹 Eslint - Code linting tool
🐶 Husky & Lint Staged - Run scripts on your staged files before they are committed
🔹 Icons - From Lucide
🌑 Dark mode - With next-themes
📝 Commitlint - Lint your git commits
🤖 Github actions - Lint your code on PR
⚙️ T3-env - Manage your environment variables
🗺️ Sitemap & robots.txt
💯 Perfect Lighthouse score
🌐 I18n with Paraglide

🚀 Deployment
Easily deploy your Next.js app with Vercel by clicking the button below:

🎯 Getting started
1. Clone this template in one of three ways


Using this repository as template



Using create-next-app
npx create-next-app -e https://github.com/Skolaczk/next-starter my-project-name


Using git clone
git clone https://github.com/Skolaczk/next-starter my-project-name


2. Install dependencies

3. Set up environment variables
Create .env file and set env variables from .env.example file.
4. Prepare husky
It is required if you want husky to work

5. Run the dev server
You can start the server using this command:

and open http://localhost:3000/ to see this app.
📁 Project structure
.
├── .github                         # GitHub folder
├── .husky                          # Husky configuration
├── prisma                          # Prisma schema and migrations
├── public                          # Public assets folder
└── src
    ├── __tests__                   # Unit and e2e tests
    ├── actions                     # Server actions
    ├── app                         # Next JS App (App Router)
    ├── components                  # React components
    ├── hooks                       # Custom hooks
    ├── lib                         # Functions and utilities
    ├── styles                      # Styles folder
    ├── types                       # Type definitions
    ├── messages                    # Messages for i18n 
    ├── paraglide                   # (generated) compiled i18n messages 
    └── env.mjs                     # Env variables config file
⚙️ Scripts overview
The following scripts are available in the package.json:

dev: Run development server
build: Build the app
start: Run production server
preview: Run build and start commands together
lint: Lint the code using Eslint
lint:fix: Fix linting errors
format:check: Checks the code for proper formatting
format:write: Fix formatting issues
typecheck: Type-check TypeScript without emitting files
test: Run unit tests
test:watch: Run unit tests in watch mode
e2e: Run end-to-end tests
e2e:ui: Run end-to-end tests with UI
postbuild: Generate sitemap
prepare: Install Husky for managing Git hooks

🤝 Contribution
To contribute, please follow these steps:

Fork the repository.
Create a new branch.
Make your changes, and commit them.
Push your changes to the forked repository.
Create a pull request.

❤️ Support
If you liked the project, I will appreciate if you leave a star. 🌟😊
Made by Michał Skolak
