<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>VibeFixKit: fixes</title><link>https://vibefixkit.com/</link><description>Free, plain-English fixes for the errors AI-built apps hit (env vars, CORS, Supabase RLS, hydration, deploys) with a copy-paste fix prompt for Cursor, Claude Code, Codex, Lovable, Bolt, Replit and v0, plus a library of starter prompts.</description><item><title>Hydration failed: server HTML didn&#x27;t match the client</title><link>https://vibefixkit.com/fix/hydration-mismatch/</link><guid>https://vibefixkit.com/fix/hydration-mismatch/</guid><description>The first render on the server and the first render in the browser produced different HTML.</description></item><item><title>useState / useEffect only works in a Client Component</title><link>https://vibefixkit.com/fix/usestate-in-server-component/</link><guid>https://vibefixkit.com/fix/usestate-in-server-component/</guid><description>In the Next.js App Router, files are Server Components by default. Hooks and event handlers need a Client Component.</description></item><item><title>process.env.NEXT_PUBLIC_... is undefined in the browser</title><link>https://vibefixkit.com/fix/next-public-env-undefined/</link><guid>https://vibefixkit.com/fix/next-public-env-undefined/</guid><description>Next.js only exposes env vars to browser code when their name starts with NEXT_PUBLIC_, and it inlines them at build time.</description></item><item><title>Works locally, broken after deploy: env var missing in production</title><link>https://vibefixkit.com/fix/env-works-locally-not-in-production/</link><guid>https://vibefixkit.com/fix/env-works-locally-not-in-production/</guid><description>.env files stay on your machine. Your host only knows the variables you add in its dashboard.</description></item><item><title>import.meta.env.VITE_... is undefined (Vite, Lovable, Bolt)</title><link>https://vibefixkit.com/fix/vite-env-undefined/</link><guid>https://vibefixkit.com/fix/vite-env-undefined/</guid><description>Vite only exposes variables that start with VITE_ to client code, via import.meta.env, not process.env.</description></item><item><title>My API secret is in the browser bundle</title><link>https://vibefixkit.com/fix/secret-key-exposed-in-frontend/</link><guid>https://vibefixkit.com/fix/secret-key-exposed-in-frontend/</guid><description>Anything in client-side code, including NEXT_PUBLIC_ and VITE_ variables, is downloadable by anyone. Treat that key as compromised.</description></item><item><title>Blocked by CORS policy: No &#x27;Access-Control-Allow-Origin&#x27; header</title><link>https://vibefixkit.com/fix/cors-blocked/</link><guid>https://vibefixkit.com/fix/cors-blocked/</guid><description>The browser refused to give your page the response because the API didn&#x27;t say your site is allowed to read it.</description></item><item><title>Supabase: new row violates row-level security policy</title><link>https://vibefixkit.com/fix/supabase-rls-new-row-violates/</link><guid>https://vibefixkit.com/fix/supabase-rls-new-row-violates/</guid><description>Row Level Security is on for that table, but no policy allows this user to insert (or update) this row.</description></item><item><title>Supabase query returns [] with no error</title><link>https://vibefixkit.com/fix/supabase-select-returns-empty/</link><guid>https://vibefixkit.com/fix/supabase-select-returns-empty/</guid><description>RLS is filtering the rows out silently. A SELECT that no policy allows returns zero rows, not an error.</description></item><item><title>Supabase: Invalid API key / legacy API keys disabled</title><link>https://vibefixkit.com/fix/supabase-invalid-api-key/</link><guid>https://vibefixkit.com/fix/supabase-invalid-api-key/</guid><description>The key your app sends doesn&#x27;t match the project, or it&#x27;s a legacy anon/service_role key that has been disabled.</description></item><item><title>Firebase: Missing or insufficient permissions</title><link>https://vibefixkit.com/fix/firebase-permission-denied/</link><guid>https://vibefixkit.com/fix/firebase-permission-denied/</guid><description>Your Firestore (or Storage / Realtime Database) security rules don&#x27;t allow this read or write.</description></item><item><title>Firebase Auth: auth/unauthorized-domain</title><link>https://vibefixkit.com/fix/firebase-unauthorized-domain/</link><guid>https://vibefixkit.com/fix/firebase-unauthorized-domain/</guid><description>Your deployed domain isn&#x27;t in Firebase Authentication&#x27;s authorized domains list.</description></item><item><title>Error 400: redirect_uri_mismatch (Google / GitHub OAuth)</title><link>https://vibefixkit.com/fix/oauth-redirect-uri-mismatch/</link><guid>https://vibefixkit.com/fix/oauth-redirect-uri-mismatch/</guid><description>The callback URL your app sent isn&#x27;t exactly one of the redirect URIs registered for that OAuth client.</description></item><item><title>OpenAI / LLM API: 429 Too Many Requests or insufficient_quota</title><link>https://vibefixkit.com/fix/openai-429-rate-limit-quota/</link><guid>https://vibefixkit.com/fix/openai-429-rate-limit-quota/</guid><description>Either you&#x27;re sending requests too fast, or the account has no credit left. Same status code, different fixes.</description></item><item><title>401 Incorrect API key provided / authentication_error</title><link>https://vibefixkit.com/fix/llm-401-invalid-api-key/</link><guid>https://vibefixkit.com/fix/llm-401-invalid-api-key/</guid><description>The API received a key, but it&#x27;s wrong, revoked, from another org/project, or mangled.</description></item><item><title>npm ERR! ERESOLVE unable to resolve dependency tree</title><link>https://vibefixkit.com/fix/npm-eresolve-dependency-tree/</link><guid>https://vibefixkit.com/fix/npm-eresolve-dependency-tree/</guid><description>Two packages want incompatible versions of a shared dependency (often React or Next.js), and npm refuses to guess.</description></item><item><title>Module not found: Can&#x27;t resolve &#x27;...&#x27;</title><link>https://vibefixkit.com/fix/module-not-found-cant-resolve/</link><guid>https://vibefixkit.com/fix/module-not-found-cant-resolve/</guid><description>An import points at a file or package that isn&#x27;t there, or a path alias the build doesn&#x27;t know.</description></item><item><title>Build works on my Mac, fails on deploy: wrong file name case</title><link>https://vibefixkit.com/fix/case-sensitive-import-fails-on-deploy/</link><guid>https://vibefixkit.com/fix/case-sensitive-import-fails-on-deploy/</guid><description>macOS and Windows ignore letter case in file names. Linux build servers don&#x27;t.</description></item><item><title>Tailwind: trying to use tailwindcss directly as a PostCSS plugin</title><link>https://vibefixkit.com/fix/tailwind-v4-postcss-plugin/</link><guid>https://vibefixkit.com/fix/tailwind-v4-postcss-plugin/</guid><description>Tailwind CSS v4 moved its PostCSS plugin into @tailwindcss/postcss, but your config still uses the v3 setup.</description></item><item><title>Tailwind classes not applying (no styles, or some classes missing)</title><link>https://vibefixkit.com/fix/tailwind-classes-not-applying/</link><guid>https://vibefixkit.com/fix/tailwind-classes-not-applying/</guid><description>Tailwind only generates CSS for complete class names it can find in your source files.</description></item><item><title>Error: listen EADDRINUSE: address already in use :::3000</title><link>https://vibefixkit.com/fix/eaddrinuse-port-in-use/</link><guid>https://vibefixkit.com/fix/eaddrinuse-port-in-use/</guid><description>Another process (often an old copy of your dev server) is already using that port.</description></item><item><title>App runs but the preview is blank / unreachable (bind to 0.0.0.0 and PORT)</title><link>https://vibefixkit.com/fix/server-must-bind-0-0-0-0/</link><guid>https://vibefixkit.com/fix/server-must-bind-0-0-0-0/</guid><description>In containers and cloud hosts, your server must listen on 0.0.0.0 and on the port the platform gives you.</description></item><item><title>Page works until I refresh, then 404 (React Router / SPA on static hosting)</title><link>https://vibefixkit.com/fix/spa-404-on-refresh/</link><guid>https://vibefixkit.com/fix/spa-404-on-refresh/</guid><description>Your single-page app handles routes in the browser, but the host looks for a real file at /dashboard and doesn&#x27;t find one.</description></item><item><title>Stripe: No signatures found matching the expected signature for payload</title><link>https://vibefixkit.com/fix/stripe-webhook-signature/</link><guid>https://vibefixkit.com/fix/stripe-webhook-signature/</guid><description>Stripe signs the raw request body. Your code verified a parsed or modified body, or used the wrong signing secret.</description></item><item><title>TypeError: Failed to fetch / ECONNREFUSED: app calls localhost in production</title><link>https://vibefixkit.com/fix/fetch-localhost-in-production/</link><guid>https://vibefixkit.com/fix/fetch-localhost-in-production/</guid><description>The deployed app still points at http://localhost, which on your user&#x27;s device (or the server) is not your backend.</description></item><item><title>Mixed Content: page loaded over HTTPS requested an insecure resource</title><link>https://vibefixkit.com/fix/mixed-content-blocked/</link><guid>https://vibefixkit.com/fix/mixed-content-blocked/</guid><description>Your HTTPS site tried to call an http:// URL, and the browser blocked it.</description></item><item><title>TypeError: Cannot read properties of undefined (reading &#x27;map&#x27;)</title><link>https://vibefixkit.com/fix/cannot-read-properties-of-undefined/</link><guid>https://vibefixkit.com/fix/cannot-read-properties-of-undefined/</guid><description>Your code used a value before it existed, usually data that hasn&#x27;t loaded yet or an API response with a different shape.</description></item><item><title>Objects are not valid as a React child</title><link>https://vibefixkit.com/fix/objects-not-valid-as-react-child/</link><guid>https://vibefixkit.com/fix/objects-not-valid-as-react-child/</guid><description>JSX tried to render a whole object (or a Promise or Date) instead of a string, number, or element.</description></item><item><title>Too many re-renders / Maximum update depth exceeded</title><link>https://vibefixkit.com/fix/too-many-re-renders/</link><guid>https://vibefixkit.com/fix/too-many-re-renders/</guid><description>A state update runs on every render, which causes another render, forever.</description></item><item><title>ERR_REQUIRE_ESM: require() of ES Module not supported</title><link>https://vibefixkit.com/fix/err-require-esm/</link><guid>https://vibefixkit.com/fix/err-require-esm/</guid><description>CommonJS code (require) is loading a package that only ships ES modules (import).</description></item><item><title>SyntaxError: Cannot use import statement outside a module</title><link>https://vibefixkit.com/fix/cannot-use-import-outside-module/</link><guid>https://vibefixkit.com/fix/cannot-use-import-outside-module/</guid><description>Node is treating your file as CommonJS, but it uses import/export syntax.</description></item><item><title>Vercel: FUNCTION_INVOCATION_TIMEOUT / 504 on AI requests</title><link>https://vibefixkit.com/fix/vercel-function-timeout/</link><guid>https://vibefixkit.com/fix/vercel-function-timeout/</guid><description>Your serverless function ran longer than its maximum duration, which is common when waiting for a long LLM response.</description></item><item><title>Build failed: Type error (passes in dev, fails in next build)</title><link>https://vibefixkit.com/fix/typescript-build-type-error/</link><guid>https://vibefixkit.com/fix/typescript-build-type-error/</guid><description>Dev mode is lenient about types; production builds run the type checker and stop on errors.</description></item><item><title>GitHub: Push cannot contain secrets (GH013 push protection)</title><link>https://vibefixkit.com/fix/github-push-protection-secret/</link><guid>https://vibefixkit.com/fix/github-push-protection-secret/</guid><description>GitHub found an API key or token in your commits and blocked the push. Good: it stopped a leak.</description></item><item><title>The engine &quot;node&quot; is incompatible / unsupported Node version on deploy</title><link>https://vibefixkit.com/fix/node-engine-version-mismatch/</link><guid>https://vibefixkit.com/fix/node-engine-version-mismatch/</guid><description>Your host is building with an older (or different) Node.js than your packages need.</description></item><item><title>The AI keeps &#x27;fixing&#x27; the same bug and making it worse</title><link>https://vibefixkit.com/fix/ai-fix-loop/</link><guid>https://vibefixkit.com/fix/ai-fix-loop/</guid><description>Each blind retry adds more code and more guesses. Stop patching and get a diagnosis first.</description></item></channel></rss>
