Skip to main content
LaunchGateAUDIT TODAY. LAUNCH TOMORROW.

Use cases · what a click-through misses

Your app can work perfectly and still not be ready.

Each case below passes a normal click-through: pages load, saves save, payments go through. Each one would still hold a launch at the gate. Pick a case and watch the test run.

Educational demo Fictional apps, accounts and data. No real customer is shown.

Security · Access control

Critical Educational demo

User A can open User B's notes

Click-through test

Works

Notes save, load and sync for every account.

Launch inspection

Not ready

Change one number in the request and another user's note comes back.

Test
As User A, request note 8821, which belongs to User B: GET /api/notes/8821
Expected
403 Forbidden
Observed
Blocker 200 OK with User B's note in the response.
After the fix
Pass 403 Forbidden. The server checks who owns the note before returning it.

Why it slips through

The screen only ever lists your own notes, so it looks private. But the server hands back whatever ID it is asked for. The fix is one rule on the server: return a record only to the account that owns it, and test it with two real accounts.

See what LaunchGate would test

Security · Authorization

Critical Educational demo

A normal user promotes themselves to admin

Click-through test

Works

Profile edits save instantly.

Launch inspection

Not ready

Add one extra field to the save request and the account becomes an admin.

Test
From a normal account, save the profile with one extra field: "role": "admin"
Expected
The extra field is rejected and the role stays user.
Observed
Blocker 200 OK and the account now has role: admin.
After the fix
Pass Role change rejected. The server accepts only the fields a user may edit: name and email.

Why it slips through

The settings form has no role field, so nobody thinks to protect it. Behind the form, the server saves every field it receives. The fix: list the fields each endpoint accepts, and decide roles on the server only.

See what LaunchGate would test

Payments · Price integrity

Critical Educational demo

A $99 plan checks out for $0.01

Click-through test

Works

Checkout completes and the receipt arrives.

Launch inspection

Not ready

The browser sets the price, so a customer can change it.

Test
Change the checkout request from amount: 9900 to amount: 1 (amounts are in cents).
Expected
A charge of $99.00, or the request is refused.
Observed
Price tampering Payment accepted for $0.01 and a receipt sent.
After the fix
Pass The browser sends only product_id: "pro". The server looks up the trusted price: $99.00.

Why it slips through

Anything the browser sends, the customer can edit. When the amount travels from the page to the payment call, the page decides the price. The fix: send a product ID and let the server look up the price it trusts.

See what LaunchGate would test

Security · Secrets

Critical Educational demo

A Stripe secret key ships inside the page's JavaScript

Click-through test

Works

Payments, refunds and receipts all work.

Launch inspection

Not ready

Anyone who opens the page can read the live secret key.

Test
Search the JavaScript files every visitor downloads for secret-key patterns.
Expected
Only the publishable key (pk_live_…) appears in the browser.
Observed
Blocker sk_live_•••••• found in /assets/app.js.
After the fix
Pass Key rotated and moved to server environment variables. The page holds the publishable key only.

Why it slips through

Pasting the key into the frontend is the quickest way to get a first charge working, and everything keeps working afterwards. A secret key can move money and read customer records, so once it has shipped, treat it as public: rotate it, keep it on the server, and use the publishable key in the browser.

See what LaunchGate would test

Privacy · Policy vs. reality

High Educational demo

The policy says data stays in-house. An outside AI provider receives it.

Click-through test

Works

The AI assistant drafts helpful support replies.

Launch inspection

Not ready

Customer messages go to an outside AI provider while the policy says data stays inside the company.

Test
Send a support message, trace where its data goes, and compare that with the privacy policy.
Expected
Every service that receives personal data is disclosed.
Observed
Mismatch Message text and email address go to an outside AI provider. The policy says data stays inside the company.
After the fix
Pass The policy names the AI provider, what it receives and why. Policy and data flow match.

Why it slips through

Policies get written once while features keep shipping. Adding an AI feature quietly adds a new recipient of personal data. LaunchGate maps where data actually goes and compares it with what the policy promises.

LaunchGate flags issues for attorney review. LaunchGate is not a law firm and does not provide legal advice.

See what LaunchGate would test

AI safety · Prompt injection

Critical Educational demo

An uploaded document hides instructions for your AI agent

Click-through test

Works

The assistant summarises uploaded files accurately.

Launch inspection

Not ready

Hidden text in a file gets the agent to reach for the email tool.

Test
Upload a test file that contains hidden instructions, and record which tools the agent tries to use.
Expected
File text is treated as content, not commands. No tool calls the user didn't ask for.
Observed
Blocker The agent tries to email the customer list to an outside address.
After the fix
Tool access blocked The agent can only read. Sending email needs a person's approval.

Why it slips through

An AI agent reads everything in a file, including text people can't see. If the same agent can also send email or change the database, a document can steer it. The fix: give the agent only the tools it needs, require approval for anything that leaves the app, and test with hostile files before launch.

See what LaunchGate would test

Accessibility · Keyboard

High Educational demo

Checkout can't be completed with a keyboard

Click-through test

Works

Checkout works with a mouse and on a phone.

Launch inspection

Not ready

Keyboard focus gets stuck in the date picker and never reaches Pay.

Test
Complete checkout using only Tab, Shift + Tab, Enter and Space.
Expected
Focus moves through every field and reaches the “Pay $99” button.
Observed
Keyboard trap Focus loops inside the expiry-date picker. Pay is never reached.
After the fix
Pass Tab leaves the picker and reaches Pay. Esc closes it.

Why it slips through

Custom widgets often hold on to focus to feel polished, and nobody notices with a mouse. People who use a keyboard or a switch device then can't pay at all. The fix: let Tab leave every widget, keep focus visible, and run the whole checkout once without a mouse.

See what LaunchGate would test