Is your Windsurf app safe?

Windsurf's agent can plan a change and carry it out across many files at once, so a finished feature appears without you having opened most of what it touched. That's what makes it fast — and it's also how code nobody read ends up live.

Reeve checks the most common problems from the outside, for free, and explains anything it finds in plain English. No install, no access to your accounts — only what's already public.

Scan your Windsurf app free

Paste your app's link. About 20 seconds. See your grade with no signup.

What can actually go wrong with a Windsurf-built app

None of these mean you did anything wrong — they're the ordinary side-effects of an agent writing a lot of code quickly. Here's what's worth checking:

  • A secret key the agent wired in for you

    To get an integration working in one pass, the agent sometimes writes the key straight into the code — and if that file runs in the browser, anyone can read it. Some keys are meant to be public and that's fine; Reeve reads your app's loaded code, finds any keys, and tells you which are safe and which need to move to the server.

  • A committed .env or exposed .git folder

    Keys belong in a .env file that never ships. But a change touching dozens of files is easy to approve without reading every path in it, so .env gets committed — or the hidden .git folder deployed — putting your whole history, keys included, one download away. Reeve checks whether either is reachable from outside.

  • Your database left open (RLS off)

    If your app stores data — usually in Supabase or another Postgres — Row Level Security decides who may read or change each row. Switching it off is a quick way to make a feature work while you're building, and it tends to stay off. Reeve checks by counting rows, never by reading them.

  • Public file storage

    Uploads land in storage "buckets," and a public bucket lets anyone list and download what's inside — invoices, IDs, private photos. Reeve checks whether your buckets are listable; it never downloads anyone's files.

  • Source maps left on

    A source map hands anyone who looks a readable copy of your original code. Useful while you're building, a gift to strangers once you're live, because it makes every other gap easier to find. Reeve checks whether yours went out with the build.

  • Missing safety headers & open endpoints

    A handful of settings tell browsers how to protect your visitors; separately, there's the question of whether your data endpoints answer to anyone, from any website. Each is small; together they decide how much a stranger can do with what they find. Reeve flags what's missing.

What Reeve is — and isn't

Reeve is a free, read-only check from the outside — like an inspector trying the doors without going in. It's fast and catches the common, high-impact mistakes. It is not a full security audit, and a clean grade isn't a guarantee — it means the obvious doors are shut.

Windsurf is an editor, not a host — it writes and runs code with you, but it doesn't deploy your app or stand guard over it afterwards. That part is on you and on whatever the agent produced. Reading a large change before you accept it is the best habit here, and if you use Supabase its own advisor flags database problems. What Reeve adds is the outside view: what your shipped app actually exposes, in plain words you can act on. And if you'd rather not think about it, we can watch it for you.

Want it handled, not just checked?

Reeve Care keeps watching your app, backs up your data, and helps you fix things when they break — so you can keep building instead of worrying.

Learn about Reeve Care

Questions, answered honestly

Is code written by Windsurf's agent secure?

It's often good code, but "the agent wrote it" doesn't mean "someone checked it for safety." Agentic edits optimise for a working result, which sometimes means a key in the wrong place or a database rule switched off to get past an error. The only way to know is to look at what's exposed — Reeve does that free in about 20 seconds.

Cascade changed a lot of files at once — how do I know what it exposed?

Mostly you can't, by reading. That's the honest answer, and it's why an outside check helps: instead of auditing a diff, Reeve looks at the app you actually deployed and reports what a stranger can reach — keys in the browser, an open database, downloadable files, an exposed .env.

How do I know if my Windsurf app is leaking API keys?

The usual cause is a key written into code that runs in the browser, where "hidden" doesn't exist. Reeve reads your app's loaded code, finds any keys, and tells you which are safe to be public and which need to move to the server — without ever storing the real values.

Will scanning my Windsurf app change anything?

No. Reeve only looks at what's already public from the outside. It never logs in, never changes anything, and never downloads your files — read-only, like checking whether a door is locked without stepping inside.

Built somewhere else? We've got the same honest rundown for:

← See all builder safety guides

Automated external check, not a full audit. Absence of findings is not a guarantee of safety.