The link preview used an old template with a blog description. The share image is now a screenshot of the real hero (scripts/render-share-image.mjs), served as Open Graph and Twitter image. Title and description come from one place and are used by the page, the previews and the structured data. Adds an apple touch icon and removes the old share-image template and its fonts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
129 lines
4.3 KiB
JSON
129 lines
4.3 KiB
JSON
{
|
|
"name": "@mintel/web",
|
|
"type": "module",
|
|
"version": "0.1.0",
|
|
"description": "Website of Marc Mintel, freelance developer for web apps and websites",
|
|
"scripts": {
|
|
"dev": "next dev --webpack --hostname 0.0.0.0",
|
|
"dev:native": "next dev --webpack",
|
|
"build": "next build --webpack",
|
|
"start": "next start",
|
|
"lint": "eslint app src scripts",
|
|
"test": "vitest run",
|
|
"test:coverage": "vitest run --coverage",
|
|
"pagespeed:test": "npx tsx ./scripts/pagespeed-sitemap.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"test:mutation": "stryker run",
|
|
"check:og": "tsx scripts/check-og-images.ts",
|
|
"share-image": "node scripts/render-share-image.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.750.0",
|
|
"@emotion/is-prop-valid": "^1.4.0",
|
|
"@mdx-js/loader": "^3.1.1",
|
|
"@mdx-js/react": "^3.1.1",
|
|
"@mintel/concept-engine": "link:../../../at-mintel/packages/concept-engine",
|
|
"@mintel/content-engine": "link:../../../at-mintel/packages/content-engine",
|
|
"@mintel/estimation-engine": "link:../../../at-mintel/packages/estimation-engine",
|
|
"@mintel/meme-generator": "link:../../../at-mintel/packages/meme-generator",
|
|
"@mintel/pdf": "link:../../../at-mintel/packages/pdf-library",
|
|
"@mintel/thumbnail-generator": "link:../../../at-mintel/packages/thumbnail-generator",
|
|
"@next/mdx": "^16.1.6",
|
|
"@next/third-parties": "^16.1.6",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@opentelemetry/context-async-hooks": "^2.1.0",
|
|
"@opentelemetry/core": "^2.1.0",
|
|
"@opentelemetry/sdk-trace-base": "^2.1.0",
|
|
"@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",
|
|
"dotenv": "^17.3.1",
|
|
"esbuild": "^0.27.3",
|
|
"framer-motion": "^12.29.2",
|
|
"graphql": "^16.12.0",
|
|
"gray-matter": "^4.0.3",
|
|
"html-to-image": "^1.11.13",
|
|
"import-in-the-middle": "^1.11.0",
|
|
"ioredis": "^5.9.1",
|
|
"lucide-react": "^0.468.0",
|
|
"mermaid": "^11.12.2",
|
|
"next": "^16.1.6",
|
|
"next-mdx-remote": "^6.0.0",
|
|
"nodemailer": "^8.0.1",
|
|
"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",
|
|
"react-social-media-embed": "^2.5.18",
|
|
"react-tweet": "^3.3.0",
|
|
"recharts": "^3.7.0",
|
|
"remotion": "^4.0.414",
|
|
"replicate": "^1.4.0",
|
|
"require-in-the-middle": "^8.0.1",
|
|
"sharp": "^0.34.5",
|
|
"shiki": "^1.24.2",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tailwindcss": "^3.4.0",
|
|
"webpack": "^5.96.1",
|
|
"website-scraper": "^6.0.0",
|
|
"website-scraper-puppeteer": "^2.0.0",
|
|
"xlsx": "^0.18.5",
|
|
"zod": "^3.25.76"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.3",
|
|
"@eslint/js": "^10.0.0",
|
|
"@lhci/cli": "^0.15.1",
|
|
"@mintel/cli": "^1.9.0",
|
|
"@mintel/eslint-config": "^1.9.0",
|
|
"@mintel/husky-config": "^1.9.0",
|
|
"@mintel/next-config": "^1.9.0",
|
|
"@mintel/next-utils": "^1.9.0",
|
|
"@mintel/tsconfig": "^1.9.0",
|
|
"@next/eslint-plugin-next": "^16.1.6",
|
|
"@stryker-mutator/core": "^10.0.0",
|
|
"@stryker-mutator/typescript-checker": "^10.0.0",
|
|
"@stryker-mutator/vitest-runner": "^10.0.0",
|
|
"@tailwindcss/typography": "^0.5.15",
|
|
"@types/mime-types": "^3.0.1",
|
|
"@types/node": "^25.0.6",
|
|
"@types/nodemailer": "^7.0.10",
|
|
"@types/prismjs": "^1.26.5",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@vitest/coverage-v8": "^4.1.11",
|
|
"autoprefixer": "^10.4.20",
|
|
"cheerio": "^1.1.2",
|
|
"concurrently": "^9.2.1",
|
|
"eslint": "10.0.0",
|
|
"eslint-plugin-react": "^7.37.5",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"mime-types": "^3.0.2",
|
|
"postcss": "^8.4.49",
|
|
"require-extensions": "^0.0.4",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "^8.54.0",
|
|
"vitest": "^4.1.11"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git@git.infra.mintel.me:mmintel/mintel.me.git"
|
|
}
|
|
}
|