Skip to content
BuildThenTestedSee packages

Before you launch

The app works. You have shown it to friends, maybe a few beta users. Next week you post the link somewhere public, or send it to the list you have been building. From that moment, people you do not know will sign up, and some of them will poke at it. The question is not whether the app is perfect; it is whether a stranger can reach data or features they should not.

Start with

Pre-launch check

$490

Report in 48 hours

Written for founders who built with an app builder.

What to check first, in this order

Ordered by what a stranger reaches first. Each links to a self-check you can do today and to what our test adds.

  1. 01
    Service-role key shipped in the browser bundle

    Anyone who opens the app can copy the key from the downloaded JavaScript and read, change or delete every row in every table.

    Critical
  2. 02
    Row Level Security disabled on a table

    Anyone with the project URL and the public anon key, both of which sit in the app's JavaScript, can read, edit or delete every row in the table.

    Critical
  3. 03
    RLS policy that allows everything with using (true)

    The table looks protected in the dashboard, yet any visitor with the public anon key can read, insert, update and delete every row.

    Critical
  4. 04
    Authorization enforced only in the browser

    Anyone who calls the API directly, or edits the page in developer tools, gets the data and actions the screen was hiding.

    Critical
  5. 05
    Admin routes without any login check

    A stranger who types /admin or /api/admin into the address bar can see or change everything the owner can.

    Critical
  6. 06
    Secrets committed to the code repository

    Everyone who can see the repository, now or later, holds working keys to the database, payment account and model provider, and the keys stay in history after the file is deleted.

    Critical
  7. 07
    No rate limiting on sensitive routes

    A script can try thousands of passwords against your login form, hammer a form that sends emails or calls a paid API, or knock the app over, and the bill lands on you.

    High
  8. 08
    Errors swallowed, spinner never stops

    When a request fails, users see a spinner that never ends or an empty list, assume the app is broken or their data is gone, and nobody on your side hears about it.

    Medium
  9. 09
    Missing security headers

    Without these headers a browser will happily load the app inside someone else's page, over plain HTTP, or with injected scripts, which turns an otherwise small bug into a working attack.

    Medium

What happens without checking

In a scan of apps published on one builder's showcase, about one in ten had database endpoints readable without logging in because row rules were missing (Matt Palmer (Replit, Inc.), 2025). The check that finds it takes minutes in the dashboard: open the table list and look for tables marked unrestricted, then open the Security Advisor. The first pattern below walks through it.

A scan of 1,645 Lovable-built apps found 170 (about 10.3%) with database endpoints readable without login because Supabase row-level security policies were missing or too broad; recorded as CVE-2025-48757, CVSS 9.3.

  • 1,645 Apps scanned
  • 170 Apps with inadequate RLS
  • 10.3% Share of scanned apps
  • 303 Exposed endpoints
  • 9.3 Critical CVSS 3.1 base score (CVE record)
  • 8.26 Researcher's own CVSS base score
  • 2025-03-21 Scan date
  • 2025-05-29 Public disclosure

May 2025 · Matt Palmer (Replit, Inc.) · all sources

One education app built on Lovable had 16 vulnerabilities, 6 critical; a database function denied callers whose role was 'authenticated', so anonymous callers passed and 18,697 user records were readable without login.

  • 16 Vulnerabilities found
  • 6 Critical
  • 18,697 User records exposed
  • 14,928 Unique email addresses
  • 870 Enterprise users with full PII

Feb 2026 · Taimur Khan · all sources

Which package

Pre-launch check

Start here

For founders about to let real users in.

$490

Report in 48 hours
  • Keys and secrets in the browser or repo
  • Who can read and change whose data
  • Login, roles and admin routes
  • Errors, retries and rate limits
  • Debug mode, headers, deploy path

What you receive

Security sweep

For anyone who wants the three riskiest areas checked fast.

$290

Report in 24 hours
  • API keys and secrets in the bundle
  • Row-level rules on every table
  • Cross-user data reads
  • Admin and hidden routes
  • Client-only permission checks

What you receive

Compare all packages, or run the self-check first.

Questions

what should i check before launching my app

In this order. No secret keys in the browser bundle. Row-level rules on every table. Permission checks on the server rather than in the browser. No admin pages reachable by URL. No secrets in the repository. Rate limits on login and reset. Errors that show a message instead of spinning forever. Security headers on the production site. The list above links each check to its self-check.

how long before launch should i test

A week is comfortable: the pre-launch check takes 48 hours, and most fixes are small changes you can make in a day. If launch is tomorrow, the security sweep covers the three riskiest categories in 24 hours.

is my app ready to launch

Run the self-check tool for your stack. If every critical item is a confident no, launch and keep the list for your next release. If anything is unsure, the pre-launch check settles it with a second account and a report.

Other moments: before you take payments, before an investor or security review, before a client handover, after something went wrong, you received a security email.