Online scan
Try Vipe online: scan a vibe-coded app without installing
Upload a project you built with AI coding tools. Vipe reads its JavaScript, TypeScript and SQL for the mistakes those tools make most often: exposed secrets, SQL injection, Next.js routes and server actions with no auth check, Supabase tables without row level security, unverified Stripe webhooks, and code that breaks the build. Your first scan is free and needs no account. For checks while you write, every day, use Vipe for VS Code.
One free scan per IP address. After that a scan uses one credit: 3 scans for $9 or 10 scans for $19.
How it works
Upload, scan, review the fixes
Upload your project
Drop a folder, a zip or single files, or paste code. Up to 200 files per scan. The first scan needs no account and no email address.
Vipe runs 26 checks
23 security checks and 3 build checks read the code itself. Nothing is installed or run. Each finding is marked as certain or as likely.
Review the fixes
Every finding names the file and the line. Vipe writes a fix and a plain-language explanation for up to 12 security findings per scan, and you can download the fixed files. Findings beyond that are still reported.
Coverage
What the web scan checks (and what it doesn't)
The web scan reads JavaScript, TypeScript and SQL files. A safety net for the mistakes AI coding tools make most often. Not a full security review, and not a guarantee: no findings does not mean the code is secure. Some checks are certain and shown as errors. Others are likely, because they depend on something one file does not show, and are shown as warnings.
23 security checks
Hardcoded secret
A real key format anywhere in a string (Stripe, OpenAI, Anthropic, GitHub, AWS, a private key, a Supabase service-role key), a secret-named variable holding a random-looking value, or a secret read from the environment with a default written in the code.
Error or warningSecret exposed to the browser
A secret behind a prefix that ships it to every visitor (NEXT_PUBLIC_, VITE_, REACT_APP_, EXPO_PUBLIC_), in code or in a .env file.
Error or warningService role key in browser code
The Supabase service role key, or the admin API that needs it, used in code that runs in the browser.
ErrorSecret written to logs
A log statement that prints the whole environment or a secret environment variable as it is.
ErrorTable without row level security
In SQL migrations: a public table that no migration enables row level security for, row level security switched off, or a policy that lets anyone write.
Error or warningSQL injection
A value spliced into the text of a SQL query instead of being passed as a parameter.
ErrorUnverified Stripe webhook
A Stripe webhook handler that acts on an event without verifying its signature.
Error or warningServer action without an auth check
A Next.js server action that changes data without checking who is calling it.
WarningRoute handler without an auth check
A Next.js route handler under an admin path, one that changes a record named by the request, or one that hands out a whole table of users or payments, with no check of who is calling.
WarningExpress route without auth
An Express route on a sensitive path with no authentication middleware.
WarningToken decoded without verification
Server code that decodes a login token without verifying it, or accepts tokens nobody signed.
Error or warningInsecure session cookie
A session or auth cookie set without the httpOnly and secure flags.
Error or warningUnsanitized HTML
Content rendered as HTML (dangerouslySetInnerHTML, innerHTML) that is not a fixed string, sanitized or generated.
WarningCode execution from request input
eval() or new Function() called with something that comes from a request.
Error or warningInsecure CORS
Any website allowed to call the API together with cookies or credentials.
ErrorWeak password hashing
A password hashed with MD5 or SHA1, or with a fast hash such as SHA-256.
ErrorPassword compared as plain text
A stored password compared directly with the one that was typed, which means it is stored unhashed.
WarningGuessable token
A token, a code or a password made with Math.random(), which can be predicted.
WarningOpen redirect
A redirect to an address taken straight from the request, with nothing checking where it leads.
Error or warningServer-side request forgery
Server code that fetches an address taken straight from the request, so the caller decides which machine the server talks to.
Error or warningPath traversal
A file read, written or deleted at a path built from a value in the request, with nothing keeping it inside its folder.
Error or warningCommand injection
A shell command (exec, execSync) built from a value in the request.
Error or warningWhole request body stored
The whole request body written to the database as it came, so the caller chooses which columns are set.
Warning
3 build checks
Broken import
An import of a file or an export that does not exist in the project.
WarningDuplicate definition
The same name declared twice in one file, or the same Express route registered twice.
WarningUnused code
An import that is never used, or a function that nothing in the project references.
Warning
What it does not check
- Whether a signed-in user may see or change a particular record (authorization logic).
- Authentication done in middleware or in another file: a route that is protected there can still be reported.
- Input validation and rate limiting.
- A value from the request that passes through a helper function or another file before it is used: redirects, server-side fetches, file paths, shell commands and database writes are only followed inside one function.
- Languages other than JavaScript, TypeScript and SQL.
- Anything that needs following a value through more than one step of the code.
Your code
Deleted when the scan is done
Your code is used for the scan and deleted as soon as the scan completes. What is processed, and by whom, is in the Privacy Policy; the rules for using the scan are in the Terms of Service.
In your editor
One scan now, or checks as you write
The web scan is a one-off check of a whole project. Vipe for VS Code (coming soon) checks the files you have open while you work, for free. The scan of the whole project and fixes in the editor are part of Vipe Pro.