{ "name": "jarv.is", "private": true, "homepage": "https://jarv.is/", "license": "(MIT AND CC-BY-4.0)", "author": { "name": "Jake Jarvis", "email": "jake@jarv.is", "url": "https://github.com/jakejarvis" }, "repository": "jakejarvis/jarv.is", "type": "module", "scripts": { "dev": "next dev -H 0.0.0.0", "build": "next build", "start": "next start", "lint": "next typegen && oxlint", "lint:fix": "next typegen && oxlint --fix", "fmt": "oxfmt", "fmt:check": "oxfmt --check", "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate" }, "dependencies": { "@base-ui/react": "^1.9.0", "@better-auth/drizzle-adapter": "^1.7.7", "@better-auth/infra": "^0.4.22", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", "@next/mdx": "16.4.0", "@number-flow/react": "^0.6.2", "@octokit/graphql": "^9.0.5", "@octokit/graphql-schema": "^15.26.1", "@tabler/icons-react": "^3.49.0", "@vercel/analytics": "^2.0.1", "@vercel/functions": "^3.9.11", "better-auth": "^1.7.7", "cheerio": "^1.2.0", "cn": "^0.4.0", "cva": "^1.0.0-beta.12", "drizzle-orm": "1.0.0-rc.5-5935859", "feed": "^6.0.0", "html-entities": "^2.6.0", "next": "16.4.0", "next-themes": "^0.4.6", "pg": "^8.23.1", "react": "19.3.0", "react-activity-calendar": "^3.2.1", "react-compare-slider": "^4.0.0", "react-dom": "19.3.0", "react-lite-youtube-embed": "^3.7.0", "react-markdown": "^10.1.0", "react-schemaorg": "^2.0.1", "react-timeago": "^8.3.0", "react-tweet": "^3.3.1", "rehype-external-links": "^3.0.0", "rehype-mdx-code-props": "^3.0.1", "rehype-mdx-import-media": "^1.4.0", "rehype-sanitize": "^6.0.0", "rehype-slug": "^6.0.0", "rehype-stringify": "^10.0.1", "rehype-unwrap-images": "^1.0.0", "rehype-wrapper": "^1.1.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-mdx": "^3.1.1", "remark-mdx-frontmatter": "^6.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.3", "remark-strip-mdx-imports-exports": "^1.0.1", "server-only": "0.0.1", "shadcn": "^4.21.4", "shiki": "^4.5.0", "tinyglobby": "^0.2.17", "unified": "^11.0.5", "zod": "^4.6.6" }, "devDependencies": { "@content-collections/cli": "^0.1.9", "@content-collections/core": "^0.15.3", "@content-collections/next": "^0.2.11", "@next/env": "16.4.0", "@tailwindcss/postcss": "^4.3.3", "@tailwindcss/typography": "^0.5.20", "@types/mdx": "^2.0.14", "@types/node": "^26.6.5", "@types/pg": "^8.23.1", "@types/react": "19.3.0", "@types/react-dom": "19.3.0", "babel-plugin-react-compiler": "1.0.0", "drizzle-kit": "1.0.0-rc.5-5935859", "oxfmt": "^0.72.0", "oxlint": "^1.87.0", "oxlint-tsgolint": "^7.0.2004", "postcss": "^8.5.29", "schema-dts": "^2.1.0", "tailwindcss": "^4.3.3", "tw-animate-css": "^1.4.0", "typescript": "^7.0.2" }, "engines": { "node": ">=24.x" }, "packageManager": "pnpm@12.11.2", "cacheDirectories": [ "node_modules", ".next/cache" ] }