{ "name": "next-js-boilerplate", "author": "Ixartz (https://github.com/ixartz)", "engines": { "node": ">=20" }, "scripts": { "dev:spotlight": "npx @spotlightjs/spotlight", "dev:next": "next dev", "dev": "npm-run-all db-remote:neon db:migrate --parallel dev:*", "build:next": "next build --webpack", "build-local": "run-p db-server:memory build:next --race", "build": "run-s build:next", "start": "next start", "build-stats": "cross-env ANALYZE=true npm run build", "clean": "rimraf .next out coverage", "lint": "eslint .", "lint:fix": "eslint . --fix", "check:types": "tsc --noEmit --pretty", "check:deps": "knip", "check:i18n": "i18n-check -l src/locales -s en -u src -f next-intl", "commit": "commit", "test": "vitest run", "test:e2e": "playwright test", "db-remote:neon": "npx get-db --yes --env .env.local --ref nextjs-boilerplate", "neon:claim": "npx get-db claim --env .env.local --ref nextjs-boilerplate", "db-server:file": "pglite-server --db=local.db --run 'npm run db:migrate'", "db-server:memory": "pglite-server --run 'npm run db:migrate'", "db:generate": "drizzle-kit generate", "db:migrate": "dotenv -c -- drizzle-kit migrate", "db:studio": "drizzle-kit studio", "db:seed-admin": "tsx scripts/seed-admin.ts", "generate:password": "tsx scripts/generate-password.ts", "storybook": "storybook dev -p 6006", "storybook:test": "vitest run --config .storybook/vitest.config.mts", "build-storybook": "storybook build" }, "dependencies": { "@arcjet/next": "^1.0.0-beta.15", "@clerk/localizations": "^3.33.0", "@clerk/nextjs": "^6.36.6", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@hookform/resolvers": "^5.2.2", "@logtape/logtape": "^1.3.6", "@mui/icons-material": "^7.3.6", "@mui/material": "^7.3.6", "@sentry/nextjs": "^10.32.1", "@t3-oss/env-nextjs": "^0.13.10", "@types/bcryptjs": "^2.4.6", "bcryptjs": "^3.0.3", "drizzle-orm": "^0.45.1", "jose": "^6.1.3", "next": "^16.1.1", "next-intl": "^4.7.0", "pg": "^8.16.3", "posthog-js": "^1.315.1", "react": "^19.2.3", "react-dom": "^19.2.3", "react-hook-form": "^7.70.0", "zod": "^4.3.5" }, "devDependencies": { "@antfu/eslint-config": "^6.7.3", "@chromatic-com/playwright": "^0.12.8", "@commitlint/cli": "^20.3.0", "@commitlint/config-conventional": "^20.3.0", "@commitlint/prompt-cli": "^20.3.0", "@electric-sql/pglite-socket": "^0.0.19", "@eslint-react/eslint-plugin": "^2.5.1", "@faker-js/faker": "^10.2.0", "@lingual/i18n-check": "^0.8.17", "@next/bundle-analyzer": "^16.1.1", "@next/eslint-plugin-next": "^16.1.1", "@playwright/test": "^1.57.0", "@spotlightjs/spotlight": "4.9.0", "@storybook/addon-a11y": "^10.1.11", "@storybook/addon-docs": "^10.1.11", "@storybook/addon-vitest": "^10.1.11", "@storybook/nextjs-vite": "^10.1.11", "@tailwindcss/postcss": "^4.1.18", "@types/node": "^24.10.4", "@types/pg": "^8.16.0", "@types/react": "^19.2.7", "@vitejs/plugin-react": "^5.1.2", "@vitest/browser": "^4.0.16", "@vitest/browser-playwright": "^4.0.16", "@vitest/coverage-v8": "^4.0.16", "babel-plugin-react-compiler": "^1.0.0", "checkly": "^6.9.8", "conventional-changelog-conventionalcommits": "^9.1.0", "cross-env": "^10.1.0", "dotenv-cli": "^11.0.0", "drizzle-kit": "^0.31.8", "eslint": "^9.39.2", "eslint-plugin-format": "^1.2.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-playwright": "^2.4.0", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.26", "eslint-plugin-storybook": "^10.1.11", "eslint-plugin-tailwindcss": "^4.0.0-beta.0", "get-db": "^0.11.0", "knip": "^5.80.0", "lefthook": "^2.0.13", "npm-run-all2": "^5.0.0", "postcss": "^8.5.6", "postcss-load-config": "^6.0.1", "rimraf": "^6.1.2", "semantic-release": "^25.0.2", "storybook": "^10.1.11", "tailwindcss": "^4.1.17", "tsx": "^4.21.0", "typescript": "5.9.3", "vite-tsconfig-paths": "^5.1.4", "vitest": "^4.0.15", "vitest-browser-react": "^2.0.2" }, "release": { "branches": [ "main" ], "plugins": [ [ "@semantic-release/commit-analyzer", { "preset": "conventionalcommits" } ], "@semantic-release/release-notes-generator", "@semantic-release/github" ] } }