{ "name": "toolso-ai", "version": "1.0.0", "description": "An open-source AI tools directory to help you discover the best AI tools across various categories.", "private": false, "keywords": [ "ai-tools", "ai-directory", "ai-tools-directory", "artificial-intelligence", "machine-learning", "nextjs", "typescript", "tailwindcss", "open-source" ], "license": "Apache-2.0", "homepage": "https://toolso.ai", "repository": { "type": "git", "url": "https://github.com/coolchange-ai/toolso-ai-open.git" }, "bugs": { "url": "https://github.com/coolchange-ai/toolso-ai-open/issues" }, "author": { "name": "CoolChange.AI", "url": "https://coolchange.ai" }, "scripts": { "dev": "node scripts/run-dev.mjs", "build": "npm run generate:blog-manifest && next build", "start": "next start", "lint": "eslint .", "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate", "db:push": "drizzle-kit push", "db:studio": "drizzle-kit studio", "admin:setup": "tsx scripts/setup-admin.ts", "seed:tools": "tsx scripts/seed-tools.ts", "generate:blog-manifest": "node scripts/generate-blog-manifest.mjs", "typecheck": "tsc --noEmit", "i18n:check": "node scripts/check-i18n.mjs", "seed:platform": "bun scripts/seed-platform.ts", "build:theme": "next build", "test:e2e": "bun scripts/e2e-interaction.ts", "shots": "bun scripts/screenshot-pages.ts" }, "dependencies": { "@aws-sdk/client-s3": "^3.958.0", "@better-auth/client": "0.0.2-alpha.3", "@hookform/resolvers": "^3.4.2", "@mapbox/rehype-prism": "^0.9.0", "@mdx-js/loader": "^3.0.1", "@mdx-js/react": "^3.0.1", "@next/mdx": "^14.2.3", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-slot": "^1.0.2", "@react-email/components": "^0.5.3", "@tabler/icons-react": "^3.5.0", "@tailwindcss/typography": "^0.5.13", "@tanstack/react-store": "^0.7.5", "@types/mdx": "^2.0.13", "@vercel/analytics": "^1.5.0", "@vercel/speed-insights": "^1.2.0", "better-auth": "^1.4.10", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cobe": "^0.6.3", "date-fns": "^3.6.0", "drizzle-kit": "^0.31.4", "drizzle-orm": "^0.44.5", "fast-glob": "^3.3.2", "framer-motion": "^12", "geist": "^1.3.0", "lucide-react": "^0.562.0", "nanoid": "^5.1.6", "next": "16.1.1", "next-intl": "^4.7.0", "next-themes": "^0.4.6", "next-view-transitions": "^0.3.5", "postgres": "^3.4.7", "prettier": "^3.7.4", "prismjs": "^1.29.0", "react": "^19.2.3", "react-dom": "^19.2.3", "react-email": "^4.2.11", "react-hook-form": "^7.51.5", "react-icons": "^5.2.1", "react-markdown": "^10.1.0", "react-wrap-balancer": "^1.1.1", "reading-time": "^1.5.0", "rehype-highlight": "^7.0.2", "remark-gfm": "^4.0.0", "resend": "^6.1.0", "sonner": "^2.0.7", "tailwind-merge": "^2.3.0", "zod": "^3.23.8" }, "devDependencies": { "@types/bun": "^1.4.2", "@types/node": "^20", "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "dotenv": "^17.2.2", "eslint": "^9.39.5", "eslint-config-next": "16.1.1", "pg": "^8.16.3", "playwright": "^1.57.0", "png-to-ico": "^3.0.1", "postcss": "^8", "sharp": "^0.34.5", "tailwindcss": "^3.4.1", "tsx": "^4.20.5", "typescript": "^5" }, "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912" }