V0 updates my package.json and adds unwanted dependencies

Hi! I’m having an unexpected issue while syncing a project with GitHub using V0.

V0 is automatically modifying my package.json in two different ways:

  1. It upgrades several dependencies to their latest versions, even though I’m not using them or didn’t request updates.

  2. It adds many new dependencies that I never installed or added to the project myself.

This causes build issues and makes the project diverge from what I actually have in my repository.

Below I’m including both versions for reference.

Original package.json (before V0 sync)

{
  "name": "my-v0-project",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "build": "next build",
    "dev": "next dev --turbopack",
    "lint": "eslint .",
    "start": "next start"
  },
  "dependencies": {
    "@hookform/resolvers": "latest",
    "@neondatabase/serverless": "1.0.2",
    "@radix-ui/react-accordion": "latest",
    "@radix-ui/react-alert-dialog": "latest",
    "@radix-ui/react-aspect-ratio": "latest",
    "@radix-ui/react-avatar": "latest",
    "@radix-ui/react-checkbox": "latest",
    "@radix-ui/react-collapsible": "latest",
    "@radix-ui/react-context-menu": "latest",
    "@radix-ui/react-dialog": "latest",
    "@radix-ui/react-dropdown-menu": "latest",
    "@radix-ui/react-hover-card": "latest",
    "@radix-ui/react-label": "latest",
    "@radix-ui/react-menubar": "latest",
    "@radix-ui/react-navigation-menu": "latest",
    "@radix-ui/react-popover": "latest",
    "@radix-ui/react-progress": "latest",
    "@radix-ui/react-radio-group": "latest",
    "@radix-ui/react-scroll-area": "latest",
    "@radix-ui/react-select": "latest",
    "@radix-ui/react-separator": "latest",
    "@radix-ui/react-slider": "latest",
    "@radix-ui/react-slot": "latest",
    "@radix-ui/react-switch": "latest",
    "@radix-ui/react-tabs": "latest",
    "@radix-ui/react-toast": "latest",
    "@radix-ui/react-toggle": "latest",
    "@radix-ui/react-toggle-group": "latest",
    "@radix-ui/react-tooltip": "latest",
    "@stackframe/stack": "latest",
    "@supabase/ssr": "latest",
    "@supabase/supabase-js": "latest",
    "@vercel/analytics": "latest",
    "autoprefixer": "^10.4.20",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "latest",
    "crypto": "latest",
    "date-fns": "4.1.0",
    "dotenv": "latest",
    "drizzle-orm": "latest",
    "embla-carousel-react": "latest",
    "geist": "latest",
    "input-otp": "latest",
    "knex": "latest",
    "kysely": "latest",
    "lucide-react": "^0.454.0",
    "next": "16.0.0",
    "next-intl": "latest",
    "next-themes": "latest",
    "nodemailer": "latest",
    "react": "19.2.0",
    "react-day-picker": "latest",
    "react-dom": "19.2.0",
    "react-hook-form": "latest",
    "react-resizable-panels": "latest",
    "recharts": "latest",
    "server-only": "latest",
    "sonner": "latest",
    "tailwind-merge": "^2.5.5",
    "tailwindcss-animate": "^1.0.7",
    "vaul": "latest",
    "ws": "8.18.3",
    "zod": "3.25.67"
  },
  "devDependencies": {
    "@tailwindcss/postcss": "^4.1.9",
    "@types/node": "^22",
    "@types/react": "19.2.2",
    "@types/react-dom": "19.2.2",
    "@types/ws": "8.18.1",
    "drizzle-kit": "0.31.5",
    "eslint": "^9.38.0",
    "eslint-config-next": "16.0.0",
    "postcss": "^8.5",
    "tailwindcss": "^4.1.9",
    "tw-animate-css": "1.3.3",
    "typescript": "^5"
  },
  "pnpm": {
    "onlyBuiltDependencies": ["@swc/core", "@tailwindcss/oxide", "sharp"],
    "overrides": {
      "@types/react": "19.2.2",
      "@types/react-dom": "19.2.2"
    }
  },
  "trustedDependencies": ["pg-native"]
}

Modified package.json (after V0 sync)

{
  "name": "my-v0-project",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "build": "next build",
    "dev": "next dev --turbopack",
    "lint": "eslint .",
    "start": "next start"
  },
  "dependencies": {
    "@aws-sdk/client-rds-data": "latest",
    "@cloudflare/workers-types": "latest",
    "@electric-sql/pglite": "latest",
    "@hookform/resolvers": "latest",
    "@libsql/client": "latest",
    "@libsql/client-wasm": "latest",
    "@neondatabase/serverless": "latest",
    "@op-engineering/op-sqlite": "latest",
    "@opentelemetry/api": "latest",
    "@planetscale/database": "latest",
    "@prisma/client": "latest",
    "@radix-ui/react-accordion": "latest",
    "@radix-ui/react-alert-dialog": "latest",
    "@radix-ui/react-aspect-ratio": "latest",
    "@radix-ui/react-avatar": "latest",
    "@radix-ui/react-checkbox": "latest",
    "@radix-ui/react-collapsible": "latest",
    "@radix-ui/react-context-menu": "latest",
    "@radix-ui/react-dialog": "latest",
    "@radix-ui/react-dropdown-menu": "latest",
    "@radix-ui/react-hover-card": "latest",
    "@radix-ui/react-label": "latest",
    "@radix-ui/react-menubar": "latest",
    "@radix-ui/react-navigation-menu": "latest",
    "@radix-ui/react-popover": "latest",
    "@radix-ui/react-progress": "latest",
    "@radix-ui/react-radio-group": "latest",
    "@radix-ui/react-scroll-area": "latest",
    "@radix-ui/react-select": "latest",
    "@radix-ui/react-separator": "latest",
    "@radix-ui/react-slider": "latest",
    "@radix-ui/react-slot": "latest",
    "@radix-ui/react-switch": "latest",
    "@radix-ui/react-tabs": "latest",
    "@radix-ui/react-toast": "latest",
    "@radix-ui/react-toggle": "latest",
    "@radix-ui/react-toggle-group": "latest",
    "@radix-ui/react-tooltip": "latest",
    "@stackframe/stack": "latest",
    "@supabase/ssr": "latest",
    "@supabase/supabase-js": "latest",
    "@tidbcloud/serverless": "latest",
    "@types/better-sqlite3": "latest",
    "@types/pg": "latest",
    "@types/sql.js": "latest",
    "@upstash/redis": "latest",
    "@vercel/analytics": "latest",
    "@vercel/postgres": "latest",
    "@xata.io/client": "latest",
    "autoprefixer": "^10.4.20",
    "better-sqlite3": "latest",
    "bun-types": "latest",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "latest",
    "crypto": "latest",
    "date-fns": "4.1.0",
    "dotenv": "latest",
    "drizzle-orm": "latest",
    "embla-carousel-react": "latest",
    "expo-sqlite": "latest",
    "geist": "latest",
    "gel": "latest",
    "input-otp": "latest",
    "knex": "latest",
    "kysely": "latest",
    "lucide-react": "^0.454.0",
    "mysql2": "latest",
    "next": "16.0.0",
    "next-intl": "latest",
    "next-themes": "latest",
    "nodemailer": "latest",
    "pg": "latest",
    "postgres": "latest",
    "react": "19.2.0",
    "react-day-picker": "latest",
    "react-dom": "19.2.0",
    "react-hook-form": "latest",
    "react-resizable-panels": "latest",
    "recharts": "latest",
    "server-only": "latest",
    "sonner": "latest",
    "sql.js": "latest",
    "sqlite3": "latest",
    "tailwind-merge": "^2.5.5",
    "tailwindcss-animate": "^1.0.7",
    "vaul": "latest",
    "ws": "8.18.3",
    "zod": "3.25.67"
  },
  "devDependencies": {
    "@tailwindcss/postcss": "^4.1.9",
    "@types/node": "^22",
    "@types/react": "19.2.2",
    "@types/react-dom": "19.2.2",
    "@types/ws": "8.18.1",
    "drizzle-kit": "0.31.5",
    "eslint": "^9.38.0",
    "eslint-config-next": "16.0.0",
    "postcss": "^8.5",
    "tailwindcss": "^4.1.9",
    "tw-animate-css": "1.3.3",
    "typescript": "^5"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "@tailwindcss/oxide",
      "esbuild",
      "sharp",
      "unrs-resolver"
    ],
    "overrides": {
      "@types/react": "19.2.2",
      "@types/react-dom": "19.2.2"
    }
  },
  "trustedDependencies": [
    "pg-native"
  ]
}

Thanks for reporting, I can confirm this issue and will escalate to the v0 team

Thanks so much for the reply!
V0 is truly one of the best platforms I’ve used, and the addition of Opus 4.5 has made it even more powerful — amazing work.

Just to add a bit more context: even if I lock the package.json, V0 still changes it during GitHub sync.

Really appreciate you escalating it — let me know if you need logs or any extra info!