TypeScript 97.5%
SQL 1.4%
Python 0.8%
1{2 "name": "@fetcha/web",3 "version": "0.1.0",4 "private": true,5 "scripts": {6 "dev": "next dev -p 8220",7 "build": "next build",8 "start": "next start -p 8220",9 "lint": "eslint",10 "typecheck": "tsc -p tsconfig.json --noEmit",11 "test": "vitest run --passWithNoTests"12 },13 "dependencies": {14 "@fetcha/core": "workspace:*",15 "@fetcha/db": "workspace:*",16 "@fetcha/email": "workspace:*",17 "@fetcha/providers": "workspace:*",18 "@radix-ui/react-dialog": "^1.1.14",19 "@radix-ui/react-dropdown-menu": "^2.1.15",20 "@radix-ui/react-popover": "^1.1.14",21 "@radix-ui/react-select": "^2.2.5",22 "@radix-ui/react-slot": "^1.2.3",23 "@radix-ui/react-switch": "^1.2.5",24 "@radix-ui/react-tabs": "^1.1.12",25 "@radix-ui/react-tooltip": "^1.2.7",26 "better-auth": "^1.4.0",27 "class-variance-authority": "^0.7.1",28 "clsx": "^2.1.1",29 "drizzle-orm": "^0.45.0",30 "framer-motion": "^12.23.0",31 "lucide-react": "^1.0.0",32 "next": "16.3.4",33 "next-themes": "^0.4.6",34 "react": "19.2.8",35 "react-dom": "19.2.8",36 "recharts": "^3.0.0",37 "server-only": "^0.0.1",38 "tailwind-merge": "^3.3.1",39 "zod": "^4.0.0"40 },41 "devDependencies": {42 "@tailwindcss/postcss": "^4",43 "@types/node": "^24.0.0",44 "@types/react": "^19",45 "@types/react-dom": "^19",46 "eslint": "^9",47 "eslint-config-next": "16.3.4",48 "tailwindcss": "^4",49 "typescript": "^5.9.3",50 "vitest": "^3.2.0"51 }52}53