Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Reeve?
Reeve is a security monitoring and backup service aimed at people who build apps with AI coding tools such as Lovable, Bolt, v0, or Cursor. You paste in your app's web address and get a free read-only external scan that returns an A–F safety grade in roughly 20 seconds, with no install and no signup. The scan checks for things like exposed secret keys, missing security headers, source maps, cross-site sharing, and database access, and it also reports what you got right rather than only listing failures.
What it does beyond the scan
- Watching: after the initial check, Reeve keeps an eye on the app so new problems surface later.
- Backing up: it provides a recovery layer, described on the page as "the undo button for your app" — useful when an AI tool or a bad edit breaks something that was working.
- Care service: a scan tells you what's wrong; the paid "Reeve Care" tier is positioned as taking the fixing off your plate.
Who it's for
The clearest fit is a solo builder or small team shipping a vibe-coded app that stores user data, especially on Supabase. The page's own framing makes the trade-off concrete: a broken front end costs you one customer, while an open database can expose everyone's data at once. Among the apps it scanned that had reachable Supabase databases, 57% had tables a stranger could read — a reminder that AI-generated code often gets the UI right and the data rules wrong.
How to decide
Start with the free scan on your live URL, then read the report for the specific fixes. If you're comfortable applying those fixes yourself, the scan may be enough; if you'd rather not maintain headers, row-level security, and backups by hand, the ongoing watch-and-restore tier is the part worth paying for. Treat the result as an automated external check rather than a full audit — it's a fast signal, not a substitute for reviewing your own access rules. You can see current plans at Reeve.
How does Reeve's free security scan work for my AI-built app?
Reeve's free scan is a read-only external check: you paste the public link to your AI-built app, confirm you own it or have permission, and get an A–F safety grade in roughly 20 seconds. No install and no signup. It runs the same nine checks against your live site that it used on the apps behind its published findings, and it reports what you got right as well as what's wrong, so a low-risk result doesn't read like a false alarm.
What it looks at
From Reeve's own scan sample and published sweep, the checks cover:
- Exposed secret keys — API keys or similar credentials sitting in client-side code
- Database access — whether a reachable Supabase database has tables a stranger can read
- Storage buckets — whether files are publicly reachable
- Security headers — protective headers missing from responses
- Cross-site sharing — permissive CORS-style settings
- Source maps — shipped files that expose your original source
Each finding carries a severity, from Medium up to Critical, and the letter grade rolls them into one number. The scan only reads what any visitor's browser could already see; it does not log in, write, or touch your data.
What the results mean in practice
The pattern in Reeve's published data is the useful part. Across roughly 31,000 live vibe-coded apps, 99% had at least one issue, but most of those were Medium-severity header gaps — annoying, not catastrophic. The severe categories were rarer but far more damaging: exposed secrets appeared in about 4% of apps, and among the 3,680 Supabase databases the scan could reach, 57% had tables a stranger could read. A missing header costs you polish; an open database table costs you your users' data.
A sensible way to read your own report:
| Finding | Typical severity | What to do |
|---|---|---|
| Missing security headers | Medium | Fix soon; low urgency, easy win |
| Source maps exposed | Medium | Strip them from production builds |
| Cross-site sharing too open | High | Tighten allowed origins |
| Storage buckets public | High | Restrict to authenticated access |
| Exposed secret key | Critical | Rotate the key first, then remove it |
| Open database tables | Critical | Turn on row-level security before anything else |
Where it fits and where it doesn't
This suits someone who built an app with Lovable, Bolt, v0, Cursor or similar and has no security background — the grade gives you a triage order instead of a wall of jargon. It's a starting point, not a full audit: it's an automated outside-in check, so it can't see server-side logic, authentication flows, or anything behind a login. A clean grade means no obvious external leaks, not that the app is secure.
If you want a second opinion on the same class of problem, OWASP maintains the reference lists for exactly these categories — exposed secrets, broken access control, security misconfiguration — and is worth reading once you know which finding you're fixing.
Next step: scan the app, then fix Critical findings in this order — rotate any exposed key, lock down database tables and storage buckets, and only then work through the Medium header and source-map items. A leaked key stays dangerous even after you remove it from the code, so rotation comes first.
What security issues does Reeve check for in Lovable, Bolt, v0, or Cursor apps?
Reeve runs an external, read-only scan of a live app and returns an A–F grade, with nine checks grouped into a few recurring problem areas. The pattern is consistent across the scan flow and the aggregate report: exposed secrets, database access, cross-site sharing, storage buckets, source maps, and missing security headers.
What the nine checks cover
- Exposed secrets — secret keys sitting in code that ships to the browser. Reeve's report flags this as up to Critical.
- Database access — whether a Supabase database is reachable and whether row-level security is on. Also up to Critical.
- Storage buckets — whether uploaded files are reachable by strangers. Up to High.
- Cross-site sharing — overly permissive sharing configuration. Up to High.
- Source maps — published build maps that expose your original code. Up to Medium.
- Security headers — missing protective headers. Up to Medium.
How common each problem is
The numbers below come from Reeve's own sweep of live vibe-coded apps, so read them as a snapshot of that sample rather than a guarantee about your app.
| Issue | Share of scanned apps | Worst severity seen |
|---|---|---|
| Security headers | 99% | Medium |
| Cross-site sharing | 22% | High |
| Source maps | 13% | Medium |
| Database access | 8% | Critical |
| Exposed secrets | 4% | Critical |
The database figures deserve a separate look, because the denominator is different. Of 3,680 reachable Supabase databases, 57% had tables a stranger could read. Among the 8,435 Supabase apps in that sweep, database access hit 57%, storage buckets 17%, and cross-site sharing 18%. The report notes that 4,703 storage systems answered the check.
Why the database layer matters most
Reeve's framing is blunt and worth taking seriously: a broken front end costs you one customer, while an open database exposes everyone's data at once. That is the correct priority order. Missing headers are a hardening gap; a readable table is an incident.
A practical next step
If you built with Lovable, Bolt, v0, or Cursor, scan the deployed URL rather than your local build — these issues live in what is actually published. Then triage in this order: exposed secrets first, then database access and storage buckets, then sharing, source maps, and headers. Rotate any key the scan finds exposed; removing it from the code is not enough if it was already public.
For context on the platforms themselves, see Lovable, Bolt, v0, and Cursor.
How much does Reeve cost and what does Reeve Care include?
Reeve's page separates a free one-off check from a paid ongoing service, and the free part is unusually complete: you paste your app or website address, it runs an external read-only scan of nine checks, and you get an A–F safety grade in about 20 seconds with no signup. That scan is the part you can evaluate without spending anything, and it tells you which of the common problems you actually have — exposed secret keys, missing security headers, cross-site sharing, source maps, database access and storage buckets among them.
The page lists a Pricing page, but the material supplied here does not state a figure, so treat any specific number as something to confirm there rather than assume. What the page does describe is the shape of the paid tier: Reeve Care is framed as the step that takes fixing off your plate, so the free scan tells you what is wrong and Care is the ongoing watch-and-back-up layer on top. The "undo button for your app" heading points at backups as the other half of that — the ability to restore rather than just be alerted.
Deciding whether Care is worth it
The honest trade-off is between a one-time diagnosis and continuous coverage. A scan is a snapshot; apps built with Lovable, Bolt, v0 or Cursor change constantly, and a key that is safe today can be exposed by the next prompt-driven edit. If you are shipping to real users and holding their data, the cost of a leak is not a bad review — it is every record in an open database at once.
A practical reader scenario: you have a small app with a handful of paying customers and a Supabase backend. Run the free scan first. If it comes back clean and you rarely touch the code, you may be fine with periodic re-scans. If it flags database access or an exposed secret, fix that immediately, then decide whether you want someone watching on an ongoing basis — that is the decision Care is priced against.
Two things worth knowing before you rely on any of it. The page is explicit that the scan is an automated external check, not a full audit, so a good grade is not proof of safety. And the published findings come from the same nine checks run across tens of thousands of live apps, which is a useful reality check on how common these mistakes are rather than a promise about your own app.
Next step: run the free scan on your live URL, read the full sample report to see what each grade band means, then check the pricing page for the current Care terms before deciding.
Can Reeve back up and restore my AI-built app if something breaks?
Yes. Reeve is built for apps made with Lovable, Bolt, v0, Cursor and similar tools, and backup plus restore is one of its core jobs — the page frames it as "the undo button for your app." Alongside a free scan that grades your app A–F in about 20 seconds, a paid tier called Reeve Care adds ongoing watching and backups, so you can roll back if a change breaks something.
What it does, based on the page
- Scans first. You paste your app or website address, tick that you own it or have permission, and get a read-only external check. No install required.
- Watches after. Reeve Care keeps an eye on the live app rather than only checking once.
- Backs up. The stated purpose is to protect the app so you have something to restore from.
- Grades and explains. The sample report shows a score (e.g. 80/100, grade B) with items to fix and things you got right, so a restore decision is paired with a picture of what was wrong.
What the scan itself catches
The evidence lists nine checks, and the findings across 30,998 live vibe-coded apps are worth knowing before you rely on any single tool:
- Security headers missing — seen in 99% of apps (up to Medium severity)
- Cross-site sharing issues — 22% (up to High)
- Source maps exposed — 13% (up to Medium)
- Database access problems — 8% overall, but 57% of the 3,680 reachable Supabase databases had tables a stranger could read
- Exposed secrets — 4% (up to Critical)
The page is explicit that this is an automated external check, not a full audit. That matters for backups too: a backup restores your files and data, but it does not fix an open database by itself.
A practical scenario
Say you prompt your AI builder to add a checkout flow, and it quietly rewrites your Supabase row-level security rules. Your front end looks fine. Reeve's scan flags database access as Critical, and because Care has been backing up, you can restore the earlier state instead of trying to reconstruct what changed. Without a backup, you are debugging a live app with a stranger-readable table.
How to decide
| Situation | Backup/restore value |
|---|---|
| You ship changes often via AI prompts | High — rollback is your safety net |
| App holds user data in Supabase or storage buckets | High — data loss and exposure are the expensive failures |
| Static marketing site, no database | Lower — version control may already cover you |
| You need compliance-grade, point-in-time recovery | Check the details on Reeve first |
Next step: run the free scan to see your grade and whether secrets or database access are exposed, then check the pricing page to confirm what the Care tier covers — specifically backup frequency, retention window, and whether restores include database contents or only your app code.
How do I fix an exposed Supabase database or leaked secret key found by Reeve?
Reeve's scan is a starting point, not a fix. It tells you what is exposed; the repair happens in your Supabase project and your app's code and hosting settings. The exposure usually has one of three causes: a service-role (secret) key shipped to the browser, a table without row-level security (RLS), or a storage bucket left public. Each has a different fix, so identify which one your report flagged before you change anything.
If a secret key is exposed
A leaked secret key is the most urgent finding because it can bypass your database rules entirely.
- Rotate the key first, in your Supabase project's API settings. Assume anything already exposed is compromised; rotating invalidates the old key immediately.
- Move the key out of client-side code and into server-side code or environment variables your build does not ship to the browser. Only the public "anon" key belongs in front-end code.
- Check your deployment environment variables and any AI tool's saved configuration, since vibe-coding tools sometimes paste keys into files that get bundled.
- After rotating, redeploy and re-scan to confirm the old key no longer appears.
If database access is open
Reeve's own published scan notes that of 3,680 reachable Supabase databases, 57% had tables a stranger could read. That is the failure mode to fix next.
- Enable RLS on every table in the public schema. A table without RLS is readable by anyone holding the public key.
- Write policies per table and per operation (select, insert, update, delete), scoped to
auth.uid()or your ownership column. A common mistake is enabling RLS but adding a policy that allows everything. - Test as an anonymous user: open your app in a private window, or query the table with the public key and no session, and confirm you get nothing.
- Treat storage buckets the same way. Check each bucket's public/private setting and its access policies.
If it is only headers or source maps
Missing security headers and exposed source maps are lower severity. They do not hand over your data directly, but source maps make your code easier to read and headers remove browser-side protections. Fix these at your host or CDN configuration, and treat them as cleanup after the key and database issues.
A practical order of operations
- Rotate any exposed secret key.
- Enable RLS and correct policies on every table.
- Lock down storage buckets.
- Fix headers and disable public source maps.
- Re-scan and confirm the grade improves.
If you want a second opinion on Supabase-specific settings, the official documentation at Supabase covers RLS policies and key management in detail. Reeve's own reporting is at Reeve. For a broader check of headers and TLS configuration once the data layer is sealed, SSL Labs and Security Headers are useful free external checks.
One caveat worth planning around: Reeve describes its scan as an automated external check, not a full audit. It can see what is reachable from outside, but it will not catch logic flaws in your policies, such as a policy that lets any logged-in user read every row. After you fix the flagged items, manually test the paths that matter most, such as whether one user can fetch another user's records by changing an ID in a request.
User reviews (0)