<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>VibeLocked</title><description>Ship your AI-built app without leaking data or keys. Practical security notes for people building with AI coding tools.</description><link>https://vibelocked.com/</link><language>en-us</language><item><title>Client-side auth is not security: protect your admin page</title><link>https://vibelocked.com/guides/client-side-auth-admin-page-security/</link><guid isPermaLink="true">https://vibelocked.com/guides/client-side-auth-admin-page-security/</guid><description>A JS role check, localStorage flag, or email gate only hides your admin page. Enforce roles on the server with Supabase RLS, Next.js, Firebase, or Clerk.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>authorization</category><category>access-control</category><category>admin</category><category>nextjs</category><category>supabase</category><category>firebase</category><category>clerk</category><category>rls</category></item><item><title>How to hide API keys in an Expo or React Native app</title><link>https://vibelocked.com/guides/expo-react-native-api-keys-secrets/</link><guid isPermaLink="true">https://vibelocked.com/guides/expo-react-native-api-keys-secrets/</guid><description>EXPO_PUBLIC_ and .env values ship inside your app. Which keys are safe in a mobile bundle, and how to move OpenAI and secret keys to a server proxy.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>expo</category><category>react-native</category><category>mobile</category><category>api-keys</category><category>secrets</category><category>env-vars</category><category>openai</category><category>supabase</category><category>firebase</category></item><item><title>Stop brute force and credential stuffing on your login</title><link>https://vibelocked.com/guides/login-brute-force-protection-supabase-clerk-firebase-authjs/</link><guid isPermaLink="true">https://vibelocked.com/guides/login-brute-force-protection-supabase-clerk-firebase-authjs/</guid><description>Rate limits, CAPTCHA, lockout, and MFA for Supabase, Clerk, Firebase, and Auth.js logins, plus generic errors and a safe way to test your own app.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>auth</category><category>brute-force</category><category>credential-stuffing</category><category>rate-limiting</category><category>supabase</category><category>clerk</category><category>firebase</category><category>authjs</category><category>nextjs</category></item><item><title>MCP server security: what to check before you install one</title><link>https://vibelocked.com/guides/mcp-server-security-cursor-claude-code/</link><guid isPermaLink="true">https://vibelocked.com/guides/mcp-server-security-cursor-claude-code/</guid><description>Before you add an MCP server to Cursor, Claude Code, or VS Code: tool poisoning, prompt injection, rug pulls, leaked tokens, and settings that limit damage.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>mcp</category><category>ai-coding-tools</category><category>cursor</category><category>claude-code</category><category>prompt-injection</category><category>supply-chain</category><category>secrets</category></item><item><title>Fix &apos;infinite recursion detected in policy for relation&apos; in Supabase</title><link>https://vibelocked.com/guides/supabase-rls-infinite-recursion-policy-fix/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-rls-infinite-recursion-policy-fix/</guid><description>Why Supabase RLS throws 42P17 infinite recursion, the safe private security definer fix, and the AI quick fixes that quietly open your data.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>rls</category><category>postgres</category><category>security-definer</category><category>errors</category><category>security</category></item><item><title>Supabase Security Advisor warnings explained and fixed</title><link>https://vibelocked.com/guides/supabase-security-advisor-warnings-fix/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-security-advisor-warnings-fix/</guid><description>What each Supabase Security Advisor lint means, which ones are urgent, and the SQL fix: RLS disabled, mutable search_path, definer views, and more.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>rls</category><category>postgres</category><category>security-advisor</category><category>security-definer</category><category>auth</category><category>security</category></item><item><title>Firestore allow read, write: if true makes your data public</title><link>https://vibelocked.com/guides/firestore-security-rules-allow-read-write-if-true/</link><guid isPermaLink="true">https://vibelocked.com/guides/firestore-security-rules-allow-read-write-if-true/</guid><description>What Firebase test mode and if true rules really allow, how to check whether your Firestore or Storage is open to the public, and the rules to deploy instead.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>firebase</category><category>firestore</category><category>security-rules</category><category>firebase-storage</category><category>app-check</category></item><item><title>SQL injection in Prisma, Drizzle, and Supabase</title><link>https://vibelocked.com/guides/sql-injection-prisma-drizzle-supabase-nextjs/</link><guid isPermaLink="true">https://vibelocked.com/guides/sql-injection-prisma-drizzle-supabase-nextjs/</guid><description>Fix SQL injection in Prisma, Drizzle, and Supabase: tagged templates, never sql.raw with user input, and parameterize Postgres functions called via rpc.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>sql-injection</category><category>prisma</category><category>drizzle</category><category>supabase</category><category>nextjs</category><category>security</category></item><item><title>Supabase Edge Function auth: verify JWT and callers</title><link>https://vibelocked.com/guides/supabase-edge-functions-auth-verify-jwt/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-edge-functions-auth-verify-jwt/</guid><description>Secure Supabase Edge Functions: what verify_jwt does not prove, getClaims vs getUser, secret key safety, signed webhooks, CORS, and rate limits.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>edge-functions</category><category>auth</category><category>jwt</category><category>deno</category><category>security</category></item><item><title>Supabase Realtime authorization: private channels and RLS</title><link>https://vibelocked.com/guides/supabase-realtime-authorization/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-realtime-authorization/</guid><description>Secure Supabase Realtime: private channels, RLS on realtime.messages for Broadcast and Presence, postgres_changes, and vibe-coded mistakes.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>realtime</category><category>rls</category><category>authorization</category><category>broadcast</category><category>presence</category><category>security</category></item><item><title>Supabase Realtime: broadcast from the database</title><link>https://vibelocked.com/guides/supabase-realtime-broadcast-from-database/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-realtime-broadcast-from-database/</guid><description>Harden Supabase Realtime broadcast from Postgres: realtime.send, broadcast_changes, private channels, payload leakage, and vibe-coded trigger mistakes.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>realtime</category><category>broadcast</category><category>rls</category><category>postgres</category><category>security</category><category>triggers</category></item><item><title>Supabase views and functions that bypass RLS</title><link>https://vibelocked.com/guides/supabase-views-security-definer-bypass-rls/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-views-security-definer-bypass-rls/</guid><description>Fix Supabase views and SECURITY DEFINER functions that skip RLS: set security_invoker, pin search_path, revoke EXECUTE, and test as anon.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>rls</category><category>postgres</category><category>views</category><category>security-definer</category><category>security</category></item><item><title>How to test Supabase RLS policies in CI with pgTAP</title><link>https://vibelocked.com/guides/test-supabase-rls-policies-ci/</link><guid isPermaLink="true">https://vibelocked.com/guides/test-supabase-rls-policies-ci/</guid><description>Test Supabase RLS with pgTAP and supabase test db: block anon and cross-tenant access, fail CI on tables without RLS, and run it all in GitHub Actions.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>rls</category><category>postgres</category><category>pgtap</category><category>testing</category><category>github-actions</category><category>security</category></item><item><title>AI hallucinated packages and slopsquatting</title><link>https://vibelocked.com/guides/ai-hallucinated-packages-slopsquatting/</link><guid isPermaLink="true">https://vibelocked.com/guides/ai-hallucinated-packages-slopsquatting/</guid><description>AI coding tools sometimes suggest npm or PyPI packages that do not exist, and attackers register the names. How it works, and a quick check before you install.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>supply-chain</category><category>npm</category><category>dependencies</category><category>ai-coding-tools</category></item><item><title>AUTH_SECRET and NEXTAUTH_SECRET: set and rotate</title><link>https://vibelocked.com/guides/authjs-auth-secret-nextauth/</link><guid isPermaLink="true">https://vibelocked.com/guides/authjs-auth-secret-nextauth/</guid><description>Auth.js needs AUTH_SECRET (NEXTAUTH_SECRET in older NextAuth) on the server only. What it encrypts, how to generate a strong value, and how to rotate it safely.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>authjs</category><category>nextauth</category><category>secrets</category><category>nextjs</category></item><item><title>CORS misconfiguration in vibe-coded apps</title><link>https://vibelocked.com/guides/cors-misconfiguration-vibe-coded-apps/</link><guid isPermaLink="true">https://vibelocked.com/guides/cors-misconfiguration-vibe-coded-apps/</guid><description>AI tools often &apos;fix&apos; CORS errors by allowing every origin or turning on credentials. What is dangerous in Next.js, Express, and Supabase, plus safe configs.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>cors</category><category>nextjs</category><category>supabase</category><category>express</category><category>headers</category></item><item><title>Content-Security-Policy for vibe-coded apps</title><link>https://vibelocked.com/guides/csp-content-security-policy-vibe-coded-apps/</link><guid isPermaLink="true">https://vibelocked.com/guides/csp-content-security-policy-vibe-coded-apps/</guid><description>Where to set a CSP header on Next.js, Vercel, and static hosts, a starter policy, what breaks with Stripe, Clerk, and Supabase, and a safe Report-Only rollout.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>csp</category><category>headers</category><category>xss</category><category>nextjs</category><category>vercel</category></item><item><title>Is your .env, .git, or source code public?</title><link>https://vibelocked.com/guides/exposed-env-git-source-maps-deployed-app/</link><guid isPermaLink="true">https://vibelocked.com/guides/exposed-env-git-source-maps-deployed-app/</guid><description>How vibe-coded apps end up serving .env files, .git folders, and source maps, a five-minute check for your site, and fixes for Vercel, Netlify, and Cloudflare.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>secrets</category><category>deployment</category><category>source-maps</category><category>env-vars</category><category>nextjs</category><category>vite</category><category>cloudflare</category></item><item><title>Fix IDOR (BOLA) in Next.js and Supabase</title><link>https://vibelocked.com/guides/idor-broken-object-level-authorization-nextjs-supabase/</link><guid isPermaLink="true">https://vibelocked.com/guides/idor-broken-object-level-authorization-nextjs-supabase/</guid><description>Fix IDOR in Next.js Route Handlers and Supabase: get the user from a verified session, scope every query by owner, add RLS, and test with a second account.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>idor</category><category>authorization</category><category>nextjs</category><category>supabase</category><category>rls</category></item><item><title>Fix open redirects in Auth.js, Supabase, and Clerk</title><link>https://vibelocked.com/guides/open-redirect-callbackurl-authjs-supabase-clerk/</link><guid isPermaLink="true">https://vibelocked.com/guides/open-redirect-callbackurl-authjs-supabase-clerk/</guid><description>AI-built login flows often redirect to any callbackUrl, redirectTo, or next value in the URL, sending users to phishing sites. How to allow-list redirects.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>authjs</category><category>nextauth</category><category>supabase</category><category>clerk</category><category>open-redirect</category><category>oauth</category></item><item><title>Prompt injection defense for vibe-coded AI apps</title><link>https://vibelocked.com/guides/prompt-injection-ai-features-vibe-coded-apps/</link><guid isPermaLink="true">https://vibelocked.com/guides/prompt-injection-ai-features-vibe-coded-apps/</guid><description>If your app sends user text, files, or web pages to an LLM, someone can hijack it. How prompt injection hits chatbots, RAG, and agents, and how to limit it.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>prompt-injection</category><category>ai-apis</category><category>openai</category><category>llm</category><category>nextjs</category><category>supabase</category></item><item><title>Rate limit AI API routes: Next.js and Supabase</title><link>https://vibelocked.com/guides/rate-limit-ai-api-routes-nextjs-supabase/</link><guid isPermaLink="true">https://vibelocked.com/guides/rate-limit-ai-api-routes-nextjs-supabase/</guid><description>Rate limiting for OpenAI and other LLM routes: per-user and per-IP limits with Upstash, daily token budgets, Supabase Edge Functions, and provider spend caps.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>rate-limiting</category><category>openai</category><category>ai-apis</category><category>nextjs</category><category>supabase</category><category>billing</category></item><item><title>Secure file uploads in Next.js and Supabase</title><link>https://vibelocked.com/guides/secure-file-uploads-nextjs-supabase-vercel-blob/</link><guid isPermaLink="true">https://vibelocked.com/guides/secure-file-uploads-nextjs-supabase-vercel-blob/</guid><description>Stop uploads that trust file.type, skip auth, or land in public/. Use direct-to-storage uploads, MIME allow-lists, safe filenames, and private storage buckets.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>nextjs</category><category>supabase</category><category>vercel</category><category>uploads</category><category>storage</category></item><item><title>Secure Vercel Cron jobs with CRON_SECRET</title><link>https://vibelocked.com/guides/vercel-cron-jobs-cron-secret/</link><guid isPermaLink="true">https://vibelocked.com/guides/vercel-cron-jobs-cron-secret/</guid><description>AI-generated apps often leave /api/cron routes open. How Vercel sends CRON_SECRET as a Bearer token, how to return 401 to other callers, and fail-open bugs.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>vercel</category><category>nextjs</category><category>cron</category><category>env-vars</category><category>api-routes</category></item><item><title>XSS in React and Next.js: dangerouslySetInnerHTML</title><link>https://vibelocked.com/guides/xss-dangerouslysetinnerhtml-markdown-ai-output-react-nextjs/</link><guid isPermaLink="true">https://vibelocked.com/guides/xss-dangerouslysetinnerhtml-markdown-ai-output-react-nextjs/</guid><description>React escapes JSX text, but dangerouslySetInnerHTML, rehype-raw, and AI chat output can still run attacker scripts. Sanitize with DOMPurify and allow-list URLs.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>xss</category><category>react</category><category>nextjs</category><category>markdown</category><category>ai</category><category>sanitization</category></item><item><title>Ship checklist for a vibe-coded app</title><link>https://vibelocked.com/checklists/ship-checklist-for-a-vibe-coded-app/</link><guid isPermaLink="true">https://vibelocked.com/checklists/ship-checklist-for-a-vibe-coded-app/</guid><description>The ordered checks to run before you share the URL of an app built with Lovable, Bolt, Cursor, Supabase, or Firebase, from leaked keys to payments.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>launch</category><category>checklist</category><category>supabase</category><category>firebase</category><category>nextjs</category></item><item><title>Clerk publishable key vs secret key</title><link>https://vibelocked.com/guides/clerk-publishable-key-vs-secret-key/</link><guid isPermaLink="true">https://vibelocked.com/guides/clerk-publishable-key-vs-secret-key/</guid><description>Your Clerk pk_ key is fine in frontend code; your sk_ key and whsec_ secret are not. The right env var names for Next.js and Vite, and how to rotate a leak.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>clerk</category><category>api-keys</category><category>nextjs</category></item><item><title>Is it safe to expose your Firebase API key?</title><link>https://vibelocked.com/guides/firebase-api-key-public-app-check/</link><guid isPermaLink="true">https://vibelocked.com/guides/firebase-api-key-public-app-check/</guid><description>Why the Firebase web API key is public by design, the one restriction that makes it dangerous, and how Security Rules and App Check actually protect your data.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>firebase</category><category>api-keys</category><category>app-check</category></item><item><title>Next.js middleware auth bypass CVE-2025-29927</title><link>https://vibelocked.com/guides/nextjs-middleware-auth-bypass-cve-2025-29927/</link><guid isPermaLink="true">https://vibelocked.com/guides/nextjs-middleware-auth-bypass-cve-2025-29927/</guid><description>CVE-2025-29927 let one header skip Next.js middleware auth checks. Affected versions, the patched releases, who is safe, and how to fix your app.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>nextjs</category><category>auth</category><category>middleware</category></item><item><title>Remove a leaked API key from GitHub history</title><link>https://vibelocked.com/guides/remove-api-key-from-github-history/</link><guid isPermaLink="true">https://vibelocked.com/guides/remove-api-key-from-github-history/</guid><description>Rotate the key first, then purge it from every commit with git filter-repo or BFG, force-push carefully, and clean up clones, forks, and GitHub&apos;s cached views.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>secrets</category><category>github</category><category>git</category><category>incident-response</category></item><item><title>Stripe paywall bypass on the success page</title><link>https://vibelocked.com/guides/stripe-success-page-paywall-bypass/</link><guid isPermaLink="true">https://vibelocked.com/guides/stripe-success-page-paywall-bypass/</guid><description>If your app grants paid access when someone lands on ?success=true, anyone can type that URL. Unlock features only from verified Stripe data, using webhooks.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>stripe</category><category>payments</category><category>paywall</category></item><item><title>Supabase Auth security settings before launch</title><link>https://vibelocked.com/guides/supabase-auth-security-settings/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-auth-security-settings/</guid><description>Supabase Auth settings AI-built apps leave on defaults: Site URL, redirects, email confirmation, password rules, leaked password checks, and reauthentication.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>auth</category></item><item><title>Secure Vercel preview deployments and env vars</title><link>https://vibelocked.com/guides/vercel-preview-deployments-env-vars/</link><guid isPermaLink="true">https://vibelocked.com/guides/vercel-preview-deployments-env-vars/</guid><description>Preview URLs can expose unfinished features and production data. Set Deployment Protection, split Preview and Production env vars, and use Secret variables.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>vercel</category><category>env-vars</category><category>deployments</category></item><item><title>How to check if your API key leaked on GitHub</title><link>https://vibelocked.com/guides/check-if-api-key-leaked-on-github/</link><guid isPermaLink="true">https://vibelocked.com/guides/check-if-api-key-leaked-on-github/</guid><description>Search your repo, your git history, and GitHub&apos;s own alerts for exposed API keys, then know what to do when you find one, starting with rotation.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>secrets</category><category>github</category><category>leaks</category></item><item><title>Env variables in Cursor, Bolt.new, and Lovable</title><link>https://vibelocked.com/guides/environment-variables-cursor-bolt-lovable/</link><guid isPermaLink="true">https://vibelocked.com/guides/environment-variables-cursor-bolt-lovable/</guid><description>Which env vars end up in the browser, how to keep .env files away from AI agents and git, and where server secrets belong in Cursor, Bolt.new, and Lovable.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>secrets</category><category>env-vars</category><category>cursor</category><category>bolt</category><category>lovable</category></item><item><title>Next.js Server Actions security</title><link>https://vibelocked.com/guides/nextjs-server-actions-security/</link><guid isPermaLink="true">https://vibelocked.com/guides/nextjs-server-actions-security/</guid><description>Server Actions are public HTTP endpoints. How to add authentication, authorization, and input validation so AI generated actions are safe to ship.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>nextjs</category><category>server-actions</category><category>auth</category></item><item><title>Stop strangers from running up your OpenAI bill</title><link>https://vibelocked.com/guides/protect-openai-api-route-from-abuse/</link><guid isPermaLink="true">https://vibelocked.com/guides/protect-openai-api-route-from-abuse/</guid><description>Your AI API route is a free proxy to your OpenAI or Anthropic account until you lock it down. Auth, rate limits, input caps, and spend limits.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>openai</category><category>ai-apis</category><category>rate-limiting</category><category>billing</category></item><item><title>Replit Secrets guide</title><link>https://vibelocked.com/guides/replit-secrets-guide/</link><guid isPermaLink="true">https://vibelocked.com/guides/replit-secrets-guide/</guid><description>How to store API keys in Replit Secrets, read them safely in code, and avoid leaking them through public Repls, frontends, and logs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>replit</category><category>secrets</category></item><item><title>A security review prompt for AI coding tools</title><link>https://vibelocked.com/guides/security-review-prompt-for-ai-coding-tools/</link><guid isPermaLink="true">https://vibelocked.com/guides/security-review-prompt-for-ai-coding-tools/</guid><description>A copy-paste prompt that asks an AI coding tool for a security review, plus how to read the answer without trusting it blindly.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>cursor</category><category>prompt</category><category>review</category></item><item><title>Supabase anon key vs service role key</title><link>https://vibelocked.com/guides/supabase-anon-key-vs-service-role-key/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-anon-key-vs-service-role-key/</guid><description>Which Supabase key is safe in the browser, which one bypasses Row Level Security, and where each belongs in a Lovable, Bolt, or Next.js app.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>secrets</category><category>rls</category></item><item><title>Supabase Storage security: buckets and RLS</title><link>https://vibelocked.com/guides/supabase-storage-bucket-security/</link><guid isPermaLink="true">https://vibelocked.com/guides/supabase-storage-bucket-security/</guid><description>Stop strangers from listing, downloading, or overwriting files in Supabase Storage, with policies for per-user folders and signed URLs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>storage</category><category>rls</category></item><item><title>Common vulnerabilities in vibe-coded apps</title><link>https://vibelocked.com/guides/common-vibe-coded-app-vulnerabilities/</link><guid isPermaLink="true">https://vibelocked.com/guides/common-vibe-coded-app-vulnerabilities/</guid><description>How IDOR, exposed service role keys, and missing auth on API routes show up in apps built with AI coding tools, and how to fix each one.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>idor</category><category>authorization</category><category>nextjs</category><category>supabase</category></item><item><title>Lovable and Bolt pre-launch security checklist</title><link>https://vibelocked.com/checklists/lovable-bolt-pre-launch-security-checklist/</link><guid isPermaLink="true">https://vibelocked.com/checklists/lovable-bolt-pre-launch-security-checklist/</guid><description>A pre-launch security pass for Lovable, Bolt, v0, Cursor, and Replit apps: exposed keys, database rules, auth, storage, and payments before you share the URL.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>lovable</category><category>bolt</category><category>cursor</category><category>replit</category><category>v0</category></item><item><title>Securing Stripe webhooks</title><link>https://vibelocked.com/guides/securing-stripe-webhooks/</link><guid isPermaLink="true">https://vibelocked.com/guides/securing-stripe-webhooks/</guid><description>Verify the Stripe-Signature header on the raw body, keep the webhook secret on the server, and ignore duplicate events before you grant access.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>stripe</category><category>webhooks</category><category>nextjs</category></item><item><title>Keep secrets out of frontend code</title><link>https://vibelocked.com/guides/keep-secrets-out-of-frontend-code/</link><guid isPermaLink="true">https://vibelocked.com/guides/keep-secrets-out-of-frontend-code/</guid><description>What Next.js and Vite put in the browser bundle, which keys are safe there, and where Supabase, Firebase, and Stripe secret keys actually belong.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>nextjs</category><category>vite</category><category>secrets</category><category>supabase</category></item><item><title>The first hour after an API key leaks</title><link>https://vibelocked.com/guides/first-hour-after-an-api-key-leaks/</link><guid isPermaLink="true">https://vibelocked.com/guides/first-hour-after-an-api-key-leaks/</guid><description>Revoke the leaked API key first. Then check logs for use, replace it with less privilege, and clean up git only after the old key is dead.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>secrets</category><category>github</category><category>incident-response</category></item><item><title>Firebase security rules checklist</title><link>https://vibelocked.com/checklists/firebase-security-rules-checklist/</link><guid isPermaLink="true">https://vibelocked.com/checklists/firebase-security-rules-checklist/</guid><description>Replace test mode, stop open Firebase security rules, and check ownership, queries, and custom claims before you ship Firestore.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>firebase</category><category>firestore</category><category>security-rules</category></item><item><title>Supabase RLS security checklist</title><link>https://vibelocked.com/checklists/supabase-rls-security-checklist/</link><guid isPermaLink="true">https://vibelocked.com/checklists/supabase-rls-security-checklist/</guid><description>Enable RLS, fix table grants, write one policy per operation, and test as the anon role before you ship a Supabase app built with Lovable, Bolt, or Cursor.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>supabase</category><category>rls</category><category>postgres</category></item></channel></rss>