{ "name": "@mintel/web", "type": "module", "version": "0.1.0", "description": "Technical problem solver's blog - practical insights and learning notes", "scripts": { "dev": "next dev", "build": "next build --webpack", "start": "next start", "lint": "eslint app src scripts video", "test": "npm run test:links", "test:links": "tsx ./scripts/test-links.ts", "test:file-examples": "tsx ./scripts/test-file-examples-comprehensive.ts", "clone-website": "tsx ./scripts/clone-recursive.ts", "clone-page": "tsx ./scripts/clone-page.ts", "generate-estimate": "tsx ./scripts/generate-estimate.ts", "ai-estimate": "tsx ./scripts/ai-estimate.ts", "video:preview": "remotion preview video/index.ts", "video:render": "remotion render video/index.ts ButtonShowcase out/button-showcase.mp4", "video:render:contact": "remotion render video/index.ts ContactFormShowcase out/contact-showcase.mp4 --concurrency=1 --codec=h264 --crf=16 --pixel-format=yuv420p --overwrite", "video:render:button": "remotion render video/index.ts ButtonShowcase out/button-showcase.mp4 --concurrency=1 --codec=h264 --crf=16 --pixel-format=yuv420p --overwrite", "video:render:all": "npm run video:render:contact && npm run video:render:button", "pagespeed:test": "npx tsx ./scripts/pagespeed-sitemap.ts", "cms:bootstrap": "DIRECTUS_URL=http://localhost:8055 npx tsx --env-file=.env scripts/setup-directus.ts", "cms:push:staging": "../../scripts/sync-directus.sh push staging", "cms:pull:staging": "../../scripts/sync-directus.sh pull staging", "cms:push:testing": "../../scripts/sync-directus.sh push testing", "cms:pull:testing": "../../scripts/sync-directus.sh pull testing", "cms:push:prod": "../../scripts/sync-directus.sh push production", "cms:pull:prod": "../../scripts/sync-directus.sh pull production", "typecheck": "tsc --noEmit" }, "dependencies": { "@react-pdf/renderer": "^4.3.2", "@remotion/bundler": "^4.0.414", "@remotion/cli": "^4.0.414", "@remotion/lottie": "^4.0.414", "@remotion/renderer": "^4.0.414", "@remotion/tailwind": "^4.0.414", "@sentry/core": "^10.38.0", "@sentry/nextjs": "^10.38.0", "@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", "axios": "^1.13.4", "canvas-confetti": "^1.9.4", "clsx": "^2.1.1", "crawlee": "^3.15.3", "framer-motion": "^12.29.2", "ioredis": "^5.9.1", "lucide-react": "^0.468.0", "mermaid": "^11.12.2", "next": "^16.1.6", "playwright": "^1.58.1", "prismjs": "^1.30.0", "puppeteer": "^24.36.1", "qrcode": "^1.5.4", "react": "^19.2.3", "react-dom": "^19.2.3", "remotion": "^4.0.414", "shiki": "^1.24.2", "tailwind-merge": "^3.4.0", "tailwindcss": "^3.4.0", "website-scraper": "^6.0.0", "website-scraper-puppeteer": "^2.0.0", "zod": "3.22.3" }, "devDependencies": { "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^10.0.1", "@lhci/cli": "^0.15.1", "@mintel/cli": "^1.1.13", "@mintel/eslint-config": "^1.1.13", "@mintel/husky-config": "1.1.13", "@mintel/next-config": "^1.6.1", "@mintel/next-utils": "^1.1.13", "@mintel/tsconfig": "^1.1.13", "@next/eslint-plugin-next": "^16.1.6", "@tailwindcss/typography": "^0.5.15", "@types/node": "^25.0.6", "@types/prismjs": "^1.26.5", "@types/qrcode": "^1.5.6", "autoprefixer": "^10.4.20", "cheerio": "^1.1.2", "eslint": "9.39.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "postcss": "^8.4.49", "tsx": "^4.21.0", "typescript": "5.9.3", "typescript-eslint": "^8.54.0" } }