close
For Lovable, Bolt, Replit & Cursor apps

Ship your app.
Not your users’ data.

AI builders get you to launch fast, then quietly leave your database open to anyone. We find the holes, fix them within 48 hours of working access, and a human engineer signs off on every change.

Free, no signup Results in seconds Never touches your database

Skip the check, get it fixed from $149

patchandship · your-app.lovable.app
Security scanEXAMPLE · 4 issues found
22/100
  • Users tableRow Level Security
    Public
  • Stripe secret keyFound in main.js bundle
    Exposed
  • avatars bucketStorage policies
    Public
  • DELETE /api/tasksSigned-out request
    200 OK
48h
Fixed or refundedFrom working access
PS
Approved by an engineer4 changes reviewed · just now

We fix apps built with

Lovablebolt.newReplitCursorsupabase▲ VercelNetlify

Your app passed every demo. That’s the trap. AI builders optimise for “it works”, not “it’s safe”, so security switches stay off until a stranger finds them first.

40.6%

of public GitHub repos using Supabase had a confirmed critical exposure. For Lovable-built repos: 57.9%.

Source: Sentris, Aug 2026 · vendor research on repos, not live apps

172 of 1,072

live vibe-coded sites on Supabase let anyone delete database records without logging in.

Source: Symbiotic Security, Jun 2026 · vendor research. Different methods; don’t compare.

What we fix

Every hole, closed. Proven.

We don’t hand you a PDF of problems. We change the code, test it from the outside, signed in and signed out, and show you the before and after.

SECURITY FIX

Row Level Security on every table. Each user reaches only their own rows.

EXAMPLE

  • profiles3,214 rows
  • notes18,902 rows
  • payments1,077 rows
  • messages44,310 rows

Secret keys out of your code. Plus exact steps to rotate them.

// src/lib/stripe.ts
const key = "sk_live_xxxxxxxxxxxx"
const key = process.env.STRIPE_KEY
// moved server-side ✓

Private files stay private. Uploads locked to their owners.

id.pdf
avatar.png
invoice.pdf

Strangers get denied. Owners still work.

$ curl -X DELETE /api/tasks/42
before → 200 OK · task deleted
after  → 401 Unauthorized
$

A human approves every change. Nothing ships unreviewed.

PS
Engineer reviewmigration 0007_notes_rls.sql
+ enable row level security;
+ using (auth.uid() = user_id)
Request changesApprove
FIX & DEPLOY

Live on your own domain. Production deploy, HTTPS, working login emails and a smoke test, so real users can sign up today.

https://yourapp.com
  • Production deploy
  • Custom domain + SSL
  • Env vars set on host
  • Auth redirects fixed
  • Signup & reset emails
  • Live smoke test
See a fix

Before. Fix. Proof.

Real fixes on our own practice apps with fake data. Pick an issue and step through what we change and how we prove it.

demo-notes-appPractice app · demo data
# signed out, using only the public anon key
$ curl "$SUPABASE_URL/rest/v1/notes" -H "apikey: $ANON"
HTTP/2 200
[{"title":"Demo Person One",…},{"title":"Demo Person Two",…},{"title":"Demo Person Three",…}]
Signed-out visitorsRead all 3 rowsEvery user’s private notes
Row Level SecurityOfftable public.notes
-- supabase/migrations/0007_notes_rls.sql
+ alter table public.notes enable row level security; + create policy "owners read their notes" + on public.notes for select + using (auth.uid() = user_id);
# reviewed and approved by a human engineer before it runs
$ curl "$SUPABASE_URL/rest/v1/notes" -H "apikey: $ANON"
HTTP/2 401 · permission denied for table notes
Before200 · 3 rowsAnyone could read
After401 · deniedOwners still see their own notes

Screen recording: Every note was public · Practice app · DEMO data · Not a customer. No sound.

Our own demo app with fake data. Not a customer.See a sample report

Built to be boringly reliable.

48hto fixed, from working access, or a full refund
$149fixed price per app, fixes included
100%of changes approved by a human engineer
0passwords you ever share with us
Pricing

One app. One price. No quote.

Each order covers one app, one Supabase project (or one Node app) and one deploy target. Pay securely with Stripe.

Security Fix
$149one time

We close the holes, prove it, and hand it back. Done in 48 hours.

  • Row Level Security on every table
  • Private storage buckets stay private
  • Leaked keys removed, with rotation steps
  • Before-and-after report
  • Human approval on every change
Buy Security Fix

48h of working access or a full refund

Fix & Deploy Most popular
$249one time

Everything in Security Fix, plus your app live for real users.

  • Everything in Security Fix
  • Production deploy on your host
  • Auth redirects and env vars set
  • Your own domain on HTTPS
  • Login, signup and core feature tested live
Buy Fix & Deploy

Lovable: Vercel, Netlify or Lovable hosting. Bolt & Cursor: Vercel or Netlify. Replit stays on Replit.

Database Check
$49one time

Not ready for a fix? A person reviews who can see your data. We change nothing.

  • Every table’s rules in plain English
  • Signed-out vs signed-in access
  • Storage buckets: private or public
  • Read-only: no passwords, keys or logins
  • Red / yellow / green report in fix order
  • $49 credited if you upgrade in 14 days
Buy Database Check

Report within 24h of working access, or a full refund · Sample report

Fixed within 48 hours, or your money back.

Every critical issue on our checklist, fixed within 48 hours of working access, or a full refund if you ask within 14 days of purchase. After checkout, a short intake form gets us access.

Read the guarantee
App won’t deploy or login broken? App Rescue, $149Launch marketing add-on: Launch Pack, $149 once or $99 a month

The Launch Pack is marketing (launch posts, SEO copy, directory list), not a security service. The 48-hour guarantee doesn’t cover it.

Your options

Why a fixed-price fix wins.

Built-in AI scans are a good free start. Agencies are thorough but slow and expensive. We sit in the sweet spot.

FeatureAsk the AIBuilt-in scansRescue agencyTypicalPatchAndShipSecurity Fix
PriceFreePaid audit, fixes quoted after$149, fixes included
TurnaroundMinutes, then you hopeDays to weeks48 hours
Tests your live appNo, reads code and configVariesEvery table, signed in and out
Human sign-offNoneVariesEvery single change
If it doesn’t workPrompt againVariesFull refund

Lovable says its own scans “do not replace a thorough security review.” Run them first. They’re free.

How it works

Four steps. A human signs off.

01

Share access

Invite us like a teammate: repo collaborator and the lowest Supabase role that works. Never your password.

GitHub inviteSupabase org role
02

We check and fix

Agents test every table and route from the outside. We write the fixes and back up before migrations.

RLSstoragekeysgrants
03

A human approves

We send you what we’ll change and wait for your written OK before touching production.

✓ Engineer review✓ Your OK
04

Report and hand-back

Before-and-after report, a deploy on Fix & Deploy, and we remove our access with a checklist to confirm.

report.pdfaccess removed
Never your password

Collaborator invites or a scoped, expiring token. Never send keys in chat.

Least access, then gone

The lowest role your plan allows, removed at hand-back.

No surprise changes

We fix items on our security checklist and add no new features.

Is this for you?

Built for founders who shipped fast.

A great fit if…

  • You built with Lovable, Bolt, Replit or Cursor on Supabase
  • Real users or a launch are coming and you’re not sure the data is safe
  • Your app has up to 25 tables you created
  • You want it fixed, not a 40-page report

Not the right fit if…

  • You need a penetration test or compliance certification
  • You want new features built
  • You have 25+ custom tables (we’ll quote separately)
  • You want a security guarantee or audit sign-off
FAQ

Questions, answered.

Something else? Email patchandship@gmail.com. We reply within 2 hours, 8 AM–8 PM PT.

What do you need access to?

Least-privilege access only: collaborator access on your GitHub repo, a Supabase org invite with the lowest role your plan allows, and for Vercel a guided handoff or a scoped, expiring token. We never ask for passwords, tokens are shared only via a one-time link, and when we hand the work back, we remove our access and send you a checklist to confirm it's gone. If we need your code, it must be in a GitHub repository; we don't accept code by email or as a zip file. Security Fix and Fix & Deploy need write access to fix your app, with the lowest role that works. Before we apply any change to your production app, we send you what we plan to change and wait for your written OK.

What if you can't fix it?

If we don't fix every critical issue on our checklist within 48 hours of working access (and, with Fix & Deploy, get your app live on your host), you get a full refund if you ask within 14 days of purchase. Details are in our Refund Policy.

Which platforms do you support?

Apps built with Lovable, Bolt, Replit or Cursor that use Supabase (or a Node/Express backend we can reach). A backend we can reach has its code in your GitHub repo (or your Replit project) and already runs on a host you control: we fix it there, but we don't set up or host servers. Bolt and Cursor apps deploy to Vercel or Netlify: we deploy the frontend, and deploying a separate server is quoted separately. Lovable apps deploy to Vercel or Netlify, or stay on Lovable hosting. Replit apps stay on Replit hosting. Each order covers one app, one Supabase project (or one Node app, as defined in our Terms) and one deploy target. Apps with more than 25 user-defined tables are declined or quoted separately. Custom backends and VPS/Docker setups are quoted separately. More on Replit: Who can secure my Replit app? More on Cursor: Who can secure my Cursor app?

Is my data safe? Will you break production?

Nothing touches production until a human engineer approves it. Before we apply any change to your production app, we send you what we plan to change and wait for your written OK. We take a backup before migrations when your plan supports it. On Supabase Free we give you a one-command dump to run, or skip schema changes until you upgrade.

Is this a penetration test or a compliance certification?

No. It's a fixed-scope fix for common critical issues in AI-built apps. It isn't a penetration test, a security guarantee or a compliance certification.

Do you add features?

No new features; we fix security issues and, with Fix & Deploy, get your existing app deployed.

What does PatchAndShip fix?

The security issues that AI app builders often leave behind: tables without Row Level Security, public storage of private files, secret keys in your app's code or repo, and secrets in public env variables. With Fix & Deploy we also point auth redirects at production and get the app live on your host with your domain and SSL. On Node/Express apps we also fix missing server-side access checks and open CORS; these are fixed, but they are not "critical" for the 48-hour guarantee. Secret keys hard-coded in a Node app's code or committed to its repo are critical, as on any app.

Why do apps built with Lovable or other AI tools leak data?

Usually because Row Level Security was never switched on. The app works in preview either way, so nobody notices. In Sentris's scan of public GitHub repositories, 57% of Lovable repos had a table in the public schema with Row Level Security switched off, compared with 21.7% of Supabase repos with no AI-tool marker. Sentris may become a referral partner.

Is it a security problem that my Supabase anon key is visible in my frontend?

No. The Supabase anon key (or the newer publishable key, sb_publishable_...) is designed to be public. Your data is protected by Row Level Security policies. The key that must never appear in frontend code is the service_role key (or the newer secret key, sb_secret_...), because it bypasses RLS. PatchAndShip checks the built bundle and git history for that key.

How do I know if my Lovable app's database is exposed?

Check whether every table in the public schema has Row Level Security enabled with owner-scoped policies, then try reading each table with only the public key while logged out. PatchAndShip's paid plans run this test after the owner consents. On Lovable Cloud we run it when the project URL and public key are visible in the built app; otherwise we check the policies directly. The free emailed mini check is passive: it looks only at the public homepage, its scripts and its security headers, and nothing else. It flags exposed secret keys, missing headers and public storage links found in the code (the bucket itself is never opened or listed). No database queries, no logins, no changes. It returns a one-page summary within 24 hours. For a result in a few seconds, run the free instant check at patchandship.com/check.html.

How much does it cost to fix security issues in a vibe-coded app?

PatchAndShip charges a fixed $149 for the Security Fix (RLS, storage policies, key scan, rotation guidance) and $249 for Fix & Deploy, which adds production deploy, environment variables, auth redirect URLs, and custom domain with SSL. Security Fix: every critical issue on our checklist fixed within 48 hours of working access. Fix & Deploy: fixed and live on your host within 48 hours. Otherwise, a full refund if you ask within 14 days of purchase.

Can you deploy my Lovable or Bolt app to my own domain?

Yes. The Fix & Deploy package ($249) deploys one app to Vercel or Netlify, or keeps a Lovable or Replit app on that platform's own hosting with your domain. For Bolt apps, Fix & Deploy deploys to Vercel or Netlify. We don't deploy to Bolt's own hosting. It sets environment variables, updates Supabase Site URL and Redirect URLs for the production domain, connects a custom domain with SSL, and smoke-tests login, signup, and the core flow.

What does the Supabase October 30, 2026 change mean for my app?

From October 30, 2026, Supabase will stop exposing new tables in the public schema to the Data API (REST and GraphQL) on existing projects until you grant access. Existing tables keep working, and new projects have had this by default since May 30, 2026. Without a grant, the API returns error 42501 "permission denied for table". Our advice: grant only what each role needs, keep RLS on with policies, and never GRANT ALL to anon. If the grant is missing, Postgres rejects the query before RLS comes into play. And a grant without RLS exposes the table.

What's the difference between PatchAndShip and a security scanner?

Scanners report problems. PatchAndShip fixes them: AI agents run the checks and draft the fixes as code changes and SQL migrations. If your project syncs to GitHub, they arrive as a pull request you can review. A human engineer reviews and approves every change before anything reaches production, and we re-run our checks afterwards.

How long does it take?

48 hours from when working access (collaborator access on your GitHub repo, a Supabase org invite with the lowest role your plan allows, and for Vercel a guided handoff or a scoped, expiring token) is confirmed.

Do you send a report, or do you fix things?

We fix them. AI agents run the checks and draft the fixes as code changes and SQL migrations. A human engineer reviews and approves every change before anything reaches production, and you also get a short report. Before we apply any change to your production app, we send you what we plan to change and wait for your written OK.

What's the difference between Security Fix and Fix & Deploy?

Security Fix ($149) fixes RLS, storage policies and exposed keys and includes key rotation guidance. Fix & Deploy ($249) adds the production deploy to one host (Vercel or Netlify, or Lovable or Replit hosting, depending on your builder): env vars, Supabase auth redirect URLs, custom domain with SSL, and a smoke test.

What's the difference between the free checks and the $49 Database Check?

The free checks only look at what your app shows the public. The instant check is an automated scan of your homepage and its scripts, and it doesn't store your results. The emailed mini check is a passive check of your public homepage, scripts and security headers, with a one-page summary within 24 hours. Neither one looks inside your database. The $49 Database Check does. With your permission, a person goes through every table and storage bucket in your app's Supabase project (or Lovable Cloud backend) and explains each access rule in plain English (Row Level Security policies and grants). You get a red, yellow and green report with the order to fix things in.

Will the Database Check change anything in my app?

No. It's read-only: we look and report, and we change nothing. You run a read-only script we send you and reply with the results and your Supabase Security Advisor list (or Lovable's security scan). No passwords, no keys, and we don't log in to your account. AI agents run the checks and a human engineer reviews and approves every report before you get it. You get the report within 24 hours of working access, or a full refund. If you want the problems fixed, that's the Security Fix or Fix & Deploy.

How does the $49 credit work?

If you buy a Security Fix ($149) or Fix & Deploy ($249) for the same app within 14 days of buying your Database Check, the full $49 counts toward it, so you pay $100 or $200. Use the upgrade link we send you, or the one-time $49 code we email you at checkout. Before work starts, we check the credit by hand against your $49 payment. If you already paid full price within those 14 days, ask us and we refund the $49. The credit can be used once, only for the app in your Database Check order and only by the person or business that bought it. It can't be transferred or exchanged for cash, and it isn't offered on marketplaces. Details are in our Refund Policy.

When does the 48-hour clock start?

When working access is confirmed. It pauses while we're waiting on you, and steps only you can take, like rotating keys or changing DNS, don't count toward the 48 hours.

Ship it safely

Is your app leaking data? Find out in seconds.

A free, passive check of your public site. No signup, nothing stored, never touches your database.

FreeNo signupOr get it fixed from $149

Prefer email? Ask for a free emailed mini check (one-page summary within 24h).