Production-ready Next.js boilerplate with: - Runtime env validation (fail-fast on missing vars) - Feature-gated config (S3, Stripe, email, OAuth) - Docker + Coolify deployment pipeline - PostgreSQL + pgvector, MinIO S3, Better Auth - TypeScript strict mode (no ignoreBuildErrors) - i18n (en/es), AI modules, billing, monitoring Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
52 lines
1.5 KiB
JSON
52 lines
1.5 KiB
JSON
{
|
|
"name": "@turbostarter/ui-web",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./globals.css": "./src/styles/globals.css",
|
|
"./*": "./src/components/*.tsx"
|
|
},
|
|
"imports": {
|
|
"#*": "./src/*.tsx"
|
|
},
|
|
"scripts": {
|
|
"clean": "git clean -xdf .cache .turbo dist node_modules",
|
|
"format": "prettier --check . --ignore-path ../../../.gitignore",
|
|
"lint": "eslint",
|
|
"typecheck": "tsc --noEmit",
|
|
"ui:add": "pnpm dlx shadcn@latest add && prettier src --write --list-different"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-table": "catalog:",
|
|
"@turbostarter/i18n": "workspace:*",
|
|
"@turbostarter/shared": "workspace:*",
|
|
"@turbostarter/ui": "workspace:*",
|
|
"cmdk": "1.1.1",
|
|
"input-otp": "1.4.2",
|
|
"lucide-react": "0.552.0",
|
|
"radix-ui": "1.4.3",
|
|
"react-day-picker": "9.11.1",
|
|
"react-resizable-panels": "4.1.1",
|
|
"react-textarea-autosize": "8.5.9",
|
|
"recharts": "2.15.4",
|
|
"vaul": "1.1.2"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/typography": "0.5.19",
|
|
"@turbostarter/eslint-config": "workspace:*",
|
|
"@turbostarter/prettier-config": "workspace:*",
|
|
"@turbostarter/tsconfig": "workspace:*",
|
|
"eslint": "catalog:",
|
|
"prettier": "catalog:",
|
|
"react": "catalog:react19",
|
|
"react-hook-form": "catalog:",
|
|
"tailwindcss": "4.1.16",
|
|
"tw-animate-css": "1.4.0",
|
|
"typescript": "catalog:",
|
|
"zod": "catalog:"
|
|
},
|
|
"prettier": "@turbostarter/prettier-config"
|
|
}
|