{ "name": "mintel-blog", "type": "module", "version": "0.1.0", "description": "Technical problem solver's blog - practical insights and learning notes", "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint", "test": "npm run test:smoke", "test:smoke": "tsx ./scripts/smoke-test.ts", "test:links": "tsx ./scripts/test-links.ts", "test:file-examples": "tsx ./scripts/test-file-examples-comprehensive.ts" }, "dependencies": { "@react-pdf/renderer": "^4.3.2", "@types/canvas-confetti": "^1.9.0", "@types/ioredis": "^4.28.10", "@types/react": "^19.2.8", "@types/react-dom": "^19.2.3", "@vercel/og": "^0.8.6", "canvas-confetti": "^1.9.4", "clsx": "^2.1.1", "framer-motion": "^12.29.2", "ioredis": "^5.9.1", "lucide-react": "^0.468.0", "mermaid": "^11.12.2", "next": "^16.1.6", "prismjs": "^1.30.0", "qrcode": "^1.5.4", "react": "^19.2.3", "react-dom": "^19.2.3", "shiki": "^1.24.2", "tailwind-merge": "^3.4.0", "tailwindcss": "^3.4.0" }, "devDependencies": { "@tailwindcss/typography": "^0.5.15", "@types/node": "^25.0.6", "@types/prismjs": "^1.26.5", "@types/qrcode": "^1.5.6", "autoprefixer": "^10.4.20", "postcss": "^8.4.49", "tsx": "^4.21.0", "typescript": "5.9.3" } }