git clone https://github.com/Aur316/next-builder-kit.git
cd next-builder-kit
rm -rf .git
If you'd rather start with a new repository based on this one, click the green Use this template
button at the top of the GitHub page. This will let you generate a fresh copy of the repository under your own GitHub account, preserving all files but without commit history.
Create with one command
npx create-next-builder-kit my-app
At first install the dependencies:
npm install
Run the development server:
npm run dev
Open http://localhost:3000 to view it in your browser.
No any
type allowed
No console.log (only console.warn and console.error are permitted)
Automatic unused import removal
Tailwind CSS class order is automatically sorted
ESLint autofix enabled on commit and save
Only:
prefixes are allowed in commit messages.
All commits are linted with commitlint.
git commit -m "feat: add login form"
git commit -m "fix: button layout issue"
Only the following branch name patterns are accepted:
feat/my-feature
fix/my-bug
Anything outside of this (e.g. main, dev, testbranch) is blocked from pushing.
The .vscode/settings.json is versioned and ensures:
Format on save is enabled
ESLint autofix (including unused import removal) on save
Tailwind class sorting on save via Prettier
No manual formatting needed — just save the file
Group and sort imports on save, and insert an empty line between each group
Added index.ts files to all major module folders to centralize exports. This allows simplified and consistent imports, improves maintainability, and decouples internal file structures from consumers.
DaisyUI is also integrated for utility-first, styled UI components built on top of Tailwind CSS. It helps speed up development with pre-designed, customizable elements.
Axios is configured with dynamic baseURL support, allowing you to switch between local API routes (/api) and an external server (NEXT_PUBLIC_API_URL) via environment variables.
A custom useHttp() hook is included to standardize all HTTP requests across the app with strong TypeScript support.
It provides generic wrappers for GET, POST, PUT, PATCH, and DELETE methods, reducing boilerplate and improving consistency across API calls.
const { httpGet, httpPost } = useHttp()
await httpGet<Array<User>>('/users')
await httpPost('/form', { name: 'John' })
To configure environment-dependent behavior, create a .env.local
file with:
NEXT_PUBLIC_USE_EXTERNAL_API=true
NEXT_PUBLIC_API_URL=http://localhost:5000
MIT © Aur316