{ "name": "example", "version": "0.1.0", "private": true, "type": "module", "scripts": { "dev": "npm-run-all --parallel dev:frontend dev:backend", "dev:slow": "npm-run-all --parallel dev:frontend:slow dev:backend", "dev:frontend": "next dev --turbo", "dev:frontend:slow": "next dev", "dev:backend": "convex dev", "predev": "convex dev --until-success && convex dev --once --run-sh \"node setup.mjs --once\" && convex dashboard", "build": "next build", "start": "next start", "lint": "next lint", "lint:fix": "next lint --fix", "format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache", "format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache" }, "dependencies": { "@convex-dev/auth": "^0.0.81", "@hookform/resolvers": "^5.2.1", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "@sentry/nextjs": "^10.8.0", "@t3-oss/env-nextjs": "^0.13.8", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "convex": "^1.26.2", "eslint-plugin-prettier": "^5.5.4", "lucide-react": "^0.542.0", "next": "15.2.3", "next-plausible": "^3.12.4", "next-themes": "^0.4.6", "react": "^19.1.1", "react-dom": "^19.1.1", "react-hook-form": "^7.62.0", "require-in-the-middle": "^7.5.2", "tailwind-merge": "^3.3.1", "typescript-eslint": "^8.41.0", "zod": "^4.1.5" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@tailwindcss/postcss": "^4.1.12", "@types/node": "^20.19.11", "@types/react": "^19.1.12", "@types/react-dom": "^19.1.9", "dotenv": "^16.6.1", "eslint": "^9.34.0", "eslint-config-next": "15.2.3", "npm-run-all": "^4.1.5", "prettier": "^3.6.2", "tailwindcss": "^4.1.12", "tw-animate-css": "^1.3.7", "typescript": "^5.9.2" } }