{ "name": "jarv.is", "private": true, "license": "(MIT AND CC-BY-4.0)", "homepage": "https://jarv.is/", "repository": "jakejarvis/jarv.is", "author": { "name": "Jake Jarvis", "email": "jake@jarv.is", "url": "https://github.com/jakejarvis" }, "scripts": { "dev": "next dev -H 0.0.0.0", "build": "next build", "start": "next start", "lint": "next lint", "prepare": "husky" }, "dependencies": { "@date-fns/tz": "^1.2.0", "@date-fns/utc": "^2.1.0", "@emotion/hash": "^0.9.2", "@giscus/react": "^3.1.0", "@mdx-js/loader": "^3.1.0", "@mdx-js/react": "^3.1.0", "@next/bundle-analyzer": "15.3.0-canary.45", "@next/mdx": "15.3.0-canary.45", "@octokit/graphql": "^8.2.1", "@octokit/graphql-schema": "^15.26.0", "@t3-oss/env-nextjs": "^0.12.0", "@upstash/redis": "^1.34.7", "clsx": "^2.1.1", "copy-to-clipboard": "^3.3.3", "date-fns": "^4.1.0", "fast-glob": "^3.3.3", "feed": "^4.2.2", "geist": "^1.3.1", "html-entities": "^2.6.0", "lucide-react": "0.487.0", "next": "15.3.0-canary.45", "polished": "^4.3.1", "prop-types": "^15.8.1", "react": "19.1.0", "react-countup": "^6.5.3", "react-dom": "19.1.0", "react-innertext": "^1.1.5", "react-is": "19.1.0", "react-lite-youtube-embed": "^2.4.0", "react-schemaorg": "^2.0.0", "react-textarea-autosize": "^8.5.9", "react-timeago": "^8.0.0", "react-turnstile": "^1.1.4", "react-tweet": "^3.2.2", "rehype-mdx-import-media": "^1.2.0", "rehype-pretty-code": "^0.14.1", "rehype-slug": "^6.0.0", "rehype-unwrap-images": "^1.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-html": "^16.0.1", "remark-mdx-frontmatter": "^5.1.0", "remark-parse": "^11.0.0", "remark-smartypants": "^3.0.2", "resend": "^4.2.0", "shiki": "^3.2.1", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "valibot": "^1.0.0" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.24.0", "@jakejarvis/eslint-config": "^4.0.7", "@types/mdx": "^2.0.13", "@types/node": "^22.14.0", "@types/prop-types": "^15.7.14", "@types/react": "^19.1.0", "@types/react-dom": "^19.1.2", "@types/react-is": "^19.0.0", "babel-plugin-react-compiler": "19.0.0-beta-e993439-20250405", "cross-env": "^7.0.3", "eslint": "^9.24.0", "eslint-config-next": "15.3.0-canary.45", "eslint-config-prettier": "^10.1.1", "eslint-plugin-css-modules": "^2.12.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-mdx": "^3.4.0", "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-compiler": "19.0.0-beta-e993439-20250405", "eslint-plugin-react-hooks": "^5.2.0", "husky": "^9.1.7", "lint-staged": "^15.5.0", "prettier": "^3.5.3", "schema-dts": "^1.1.5", "stylelint": "^16.18.0", "stylelint-config-css-modules": "^4.4.0", "stylelint-config-standard": "^38.0.0", "stylelint-prettier": "^5.0.3", "typescript": "5.8.3" }, "optionalDependencies": { "sharp": "^0.34.1" }, "engines": { "node": ">=20.x" }, "packageManager": "pnpm@10.8.0+sha512.0e82714d1b5b43c74610193cb20734897c1d00de89d0e18420aebc5977fa13d780a9cb05734624e81ebd81cc876cd464794850641c48b9544326b5622ca29971", "cacheDirectories": [ "node_modules", ".next/cache" ], "lint-staged": { "*.{js,jsx,ts,tsx,md,mdx}": [ "eslint" ], "*.css": [ "stylelint" ] } }