[01] / SHIPSAFE

You shipped fast. Do you know what's actually exposed?

ShipSafe scans the app your AI coding tool built and tells you, in plain English, what's actually at risk — no code-reading required. A Claude-based review pass reads every finding, throws out anything that doesn't hold up, and explains what could happen if someone found it before you did.

What ShipSafe doesn't do: it doesn't touch your code or fix anything automatically. It finds problems and explains them — you, a developer, or our fix-call option makes the actual fix.

Abstract illustration of a web app interface with a scanning beam sweeping across it, revealing hidden risk points beneath the surface
C Sample grade — capped by 1 critical finding
[02] / HOW IT WORKS

Watch it check your app in plain sight.

Eight mechanical checks run against your live app and your public git history — nothing installed, nothing changed. Then a Claude-based review pass reads the results before any of it reaches you.

shipsafe / scan / sample-app SAMPLE SCAN

$ shipsafe scan --repo your-repo

[1/8]Secrets in git historyclear

[2/8]Client-side secret exposure1 found

[3/8]Unprotected routesclear

[4/8]Authorization (IDOR)1 found — critical

[5/8]Dependency audit (lockfile only)1 found

[6/8]Security headers1 found

[7/8]Database row-level securityclear

[8/8]Webhook + upload validationclear

Claude review passFalse positives removed · plain-English rewrite completedone

 4 findings confirmed · 1 critical, 3 minor

C

Grade capped at C — one critical finding caps the grade no matter how clean everything else is.

8 mechanical checks 1 plain-English review pass No fix applied without you
[03] / WHAT WE CHECK

Eight checks. Zero guessing.

Each one looks for a specific, common way vibe-coded apps get exposed. Open the + on any card for exactly what it looks for.

CHECK 01

Secrets in git history

Checks every past commit for API keys, passwords, and tokens that got committed and never fully removed.

Looks for
Keys, passwords, tokens in any past commit
Why it matters
Deleting a line today doesn't erase it from history
You do
Rotate the exposed key — we never touch your repo
CHECK 02

Client-side secret exposure

Checks whether a secret key is sitting in code your browser downloads — meaning anyone can view-source and read it.

Where
JS bundles, HTML, config shipped to the browser
Common cause
A server-only key pasted into front-end code
Risk
Anyone with a browser can read it
CHECK 03

Unprotected routes

Checks whether pages or API endpoints that should require login are reachable without one.

Method
Requests each route with no credentials attached
Flags
Any route that returns real data anyway
Example
An admin page anyone can load directly
CHECK 04

Authorization (IDOR)

Checks whether changing an ID in the web address lets you see or edit someone else's data — an IDOR, short for Insecure Direct Object Reference.

Method
Swaps IDs across two test accounts
Flags
Account A reading or editing account B's data
Why common
Fast-built apps often check login, not ownership
CHECK 05

Dependency audit

Checks your project's lockfile against public vulnerability databases — nothing is installed, run, or executed.

Source
Your lockfile only
Never
Installs packages or executes any code
Flags
Dependencies with known, disclosed vulnerabilities
CHECK 06

Security headers

Checks whether your site sends the response headers that stop common browser-based attacks.

Checks
Content-Security-Policy, HSTS, X-Frame-Options and similar
Method
Reads real HTTP responses from your live site
Fix
Usually a few lines of hosting configuration
CHECK 07

Row-level security

Checks whether your database enforces row-level security (RLS) — rules the database itself uses to decide which rows a user can see.

Why it matters
If the app's own check has a bug, RLS is the backstop
Method
Probes for rows readable across account boundaries
Common gap
Enabled on some tables, forgotten on others
CHECK 08

Webhooks + uploads

Checks whether incoming webhooks are verified as genuinely from the service that sent them, and whether file uploads are restricted.

Webhook check
Signature verification present and correct
Upload check
File type, size, and storage path restrictions
Risk if missing
Forged events, or a file masquerading as an image
PLUS

A Claude review pass reads everything first.

Before any of it reaches you, a Claude-based review pass reads every finding, throws out anything that doesn't actually check out, and rewrites what's left in plain English — including a concrete "what could happen" scenario for each one. No finding reaches your report without going through this pass.

See what your grade would be

Free — takes a couple of minutes to start.

[04] / YOUR REPORT

See your grade free. Fix it when you're ready.

Every scan is graded A through F, like a report card. The rule is simple, and it's on purpose.

One rule decides the ceiling: any single critical finding caps your grade at a C, no matter how clean everything else is. A serious gap matters more than a dozen small ones.

SAMPLE REPORT
C

4 findings confirmed · capped by 1 critical

CRITICAL · shown in full

Order history page has no authorization check

Any logged-in user can open another customer's order history by changing the number in the page's web address. No password or permission check stops them.

What could happen: a competitor, or anyone curious, could page through every customer's order history — names and purchase amounts — just by editing the address bar.

Dependency audit · 1 finding

Unlocks with the full report — $149, one time.

Security headers · 1 finding

Unlocks with the full report — $149, one time.

Client-side secret exposure · 1 finding

Unlocks with the full report — $149, one time.

FREE

See where you stand

$0
  • Your letter grade, A through F
  • Finding counts across all 8 categories
  • One full critical finding, written in plain English
Run my free scan
FULL REPORT

Fix what matters

$149one time
  • Every finding, in full, in plain English
  • A concrete "what could happen" scenario for each one
  • Option to book a fix call with a real person
Scan first, then unlock →

One time. No subscription.

[05] / FAQ

Questions non-developers actually ask.

Plain English, no exceptions — including the jargon we just used above.

What's an IDOR, and why does it matter?
IDOR stands for Insecure Direct Object Reference — a technical name for a simple problem: the app checks that you're logged in, but not that you're allowed to see the specific thing you're asking for. Change a number in the web address, and you might land on someone else's data.
What is row-level security, and why check the database directly?
Row-level security (RLS) is a rule enforced by the database itself, deciding which rows a logged-in user can see or change. We check for it because if your app's own code has a bug — or the check gets skipped somewhere — RLS is what stops a stranger from reading someone else's row anyway.
Will ShipSafe fix my code for me?
No. ShipSafe finds problems and explains them in plain English, including what could happen if they're left alone. A person still makes the fix — you, a developer you hire, or our fix-call option.
I can't read code. Can I still use this?
Yes — that's who it's built for. Every finding is written for someone who has never read a line of code: what's wrong, where it is, and what could actually happen if it stays that way.
Does the scan install anything or change my code?
No. The dependency check reads your project's lockfile only — it never installs a package or runs your code. The other checks look at your live app and its public git history from the outside, without touching anything.
What does a C or lower actually mean?
One rule decides it: any single critical finding caps your grade at a C, no matter how clean everything else is. It's deliberate — one serious gap matters more than a dozen small ones.
[06] / GET STARTED

Get your grade. Decide what's worth fixing.

Tell us where your app lives. We'll grade what your AI coding tool built and show you exactly what's exposed — free.

$149 unlocks every finding in full, plus the option to book a fix call. One time, no subscription.

Enter your repo's address.

Enter a valid email, e.g. you@yourcompany.com.

Free grade · finding counts · one full critical finding, explained

Scan queued.

We'll email your grade, your finding counts, and one full critical finding — written in plain English.