Workshop deck: Is your vibe-coded app safe?

Arrow keys to move. F for full screen. N for speaker notes.

Is your vibe-coded app safe?

A hands-on Vibe workshop for people who build with AI

vibe1 / 24

Your AI writes the code. You own the consequences.

vibe2 / 24

Who's gonna tell vibe coders about...

Rate limiting · Idempotency · Row-level security · Timeouts · Webhooks · Secrets · Rollbacks · Backups · Prompt injection · and 102 more

vibe3 / 24

The receipts

  • About 44% of AI code-generation tasks introduced a known vulnerability (Veracode, 2026)
  • 170+ apps exposed by one missing database policy (CVE-2025-48757)
  • 1 AI agent deleted a live production database during a code freeze (July 2025)
vibe4 / 24

Part 1. The mindset

20 minutes

vibe5 / 24

AI code fails in predictable ways

  • It checks who you are, but not what you own
  • It puts secrets wherever is convenient
  • It writes the happy path and swallows errors
  • It queries inside loops
  • It invents packages that do not exist
  • It says "done, all tests pass" without running anything
vibe6 / 24

The five lenses

  1. Adversary. What if the user is an attacker?
  2. Scale. What if 1,000 people do this at once?
  3. Failure. What if the thing I call is slow or down?
  4. Change. How do I ship and undo this safely?
  5. Visibility. How would I even know it broke?
vibe7 / 24

Blast radius

  • A. Reversible and private: ship freely
  • B. Touches user data: access control and backups
  • C. Money or identity: idempotency, audit, tests
  • D. Irreversible or external actions: human approval and a kill switch
vibe8 / 24

Part 2. Meet Ledgerly

A real app spec with 14 security tests. 10 minutes

vibe9 / 24

Setup

cd vibe-starter
npm install
npm run score

Expected: 0 / 14 passing

vibe10 / 24

The rules

  • Use your AI assistant to build every feature
  • Read every diff before you accept it
  • Never edit the tests
  • Ask your AI to explain the failing test before it writes anything
vibe11 / 24

Part 3. Who can see what?

Access control, injection, secrets. 50 minutes

vibe12 / 24

Broken access control is risk number one

OWASP Top 10:2025, A01. The app checks that you are logged in, not that the invoice is yours.

Try it: ask your AI to build the invoice endpoint. Log in as Bob and change the invoice ID. Whose invoice do you see?

vibe13 / 24

Secrets do not belong in the browser

Anything in the frontend bundle is public. Open dev tools, search for sk_.

If a key leaks, rotate it. Deleting the file does not delete git history.

vibe14 / 24

Lab: pass tests 01 to 07

Access control, SQL injection, secrets, XSS, rate limiting, password hashing, N+1

Target score: 7 / 14

vibe15 / 24

Break

15 minutes

vibe16 / 24

Part 4. When things go wrong

Timeouts, webhooks, race conditions. 40 minutes

vibe17 / 24

Networks fail halfway

  • Every outbound call needs a timeout
  • Retries need idempotency, or customers get charged twice
  • Webhooks need a signature check and deduplication
  • Check-then-act needs an atomic update
vibe18 / 24

Part 5. When the input is the attack

SSRF and prompt injection. 40 minutes

vibe19 / 24

The lethal combination

An AI agent is dangerous when it has all three:

  1. Access to private data
  2. Exposure to untrusted content
  3. A way to act or send data out

Remove one leg for every task.

vibe20 / 24

Lab: pass tests 08 to 14

Target score: 14 / 14

vibe21 / 24

Part 6. Take it home

20 minutes

vibe22 / 24

Your next 7 days

  1. Run a secrets scan on your real app, and rotate anything found
  2. Turn on row-level security and test it with a second account
  3. Put spend caps on every paid API key
  4. Add a timeout to every outbound call
  5. Do one backup restore and time it
vibe23 / 24

Keep the vibe. Add the proof.

vibe.jayren.ai

vibe24 / 24

Speaker notes