VibeXray
Production Readiness Report · issued by Deop Inc.
repoacme/launchpad-app scanned2026-07-31 09:14 EDT stackNext.js · Supabase · OpenAI reportDRS-2026-0147

Your app works. It isn't ready.

We ran 25 production-readiness checks across security, AI risk, reliability, operability, and cost — plus a stack risk analysis, an operating-skills assessment, and an enterprise readiness track. Here's where you stand, and the five fixes that matter most before real users arrive.

Readiness Score
41/100
VERDICT: NOT SAFE FOR PUBLIC LAUNCH
DEMOPRODUCTION

Typical for AI-assisted builds: the product logic is solid, but 3 critical and 5 high findings would be exploitable or expensive within days of a public launch. Most are fixable in under two weeks.

3
Critical
5
High
6
Medium
11
Passed

Fix these five first

Ranked by severity × exploitability. Everything else can wait until after these are closed.

SEC-01Critical OpenAI API key committed to the repository

Your production key is in .env.local, which is tracked in git history. Anyone with repo access — or a leaked clone — can bill your account directly.

If launched today: key scraping bots typically exploit exposed keys within hours; unbounded spend on your OpenAI account.

SEC-02Critical Users can read other users' data (missing ownership checks)

API routes verify that a user is logged in, but not that they own the record requested. Changing the ID in /api/projects/[id] returns any user's project — a classic pattern in AI-generated CRUD code.

If launched today: full customer data exposure; reportable breach in most jurisdictions.

AI-01Critical No spend limits on LLM calls

Model calls have no max_tokens, no per-user quota, and no rate limiting. One malicious user with a loop can generate a four-figure API bill overnight.

If launched today: uncapped cost exposure tied directly to public traffic.

AI-02High User input flows straight into the system prompt

Free-text input is concatenated into your system prompt in lib/ai/generate.ts. Prompt injection lets users override instructions, extract your prompt, or generate off-policy content under your brand.

If launched today: reputational risk and guardrail bypass on day one.

OPS-01High No error monitoring — you won't know when it breaks

There is no Sentry, App Insights, or equivalent. External API failures are silently swallowed in 14 locations. Your first alert will be a customer complaint.

If launched today: outages discovered by users, not by you; no data for debugging.

Readiness by category

Score reflects weighted checks passed within each category.

Security
3/8 passed · 34%
AI Risk
1/5 passed · 22%
Reliability
3/5 passed · 58%
Operability
2/5 passed · 43%
Cost & Data
2/2 passed · 88%

All findings

Full check manifest. Passed checks are included so you can see what's already solid.

IDSeverityFinding
Security
SEC-01CriticalSecrets committed to repository (OpenAI key, Supabase service role)
SEC-02CriticalMissing ownership checks on authenticated endpoints (IDOR)
SEC-03HighCORS allows all origins with credentials enabled
SEC-04Medium2 dependencies with known CVEs; 1 unresolvable package name
SEC-05MediumMissing security headers (CSP, HSTS)
SEC-06PassNo raw SQL interpolation — ORM used consistently
SEC-07PassNo secrets in client bundle
SEC-08PassFile uploads validated for type and size
AI Risk
AI-01CriticalNo token limits, quotas, or rate limiting on LLM calls
AI-02HighPrompt injection: user input concatenated into system prompt
AI-03HighLLM output rendered as raw HTML (stored XSS vector)
AI-04MediumNo moderation layer on user-facing generation
AI-05PassModel calls made server-side only
Reliability
REL-01HighExternal calls lack timeouts and retries in 14 locations
REL-02MediumCheck-then-act race condition in credit deduction logic
REL-03PassHealth check endpoint present
REL-04PassRequest bodies validated with zod at API boundaries
REL-05PassDatabase connection pooling configured
Operability
OPS-01HighNo error monitoring or alerting integration
OPS-02MediumNo tests on auth or payment paths (4% overall coverage)
OPS-03MediumDev and prod share one database and key set
OPS-04PassCI/CD pipeline deploys from main with build checks
OPS-05PassStructured logging present in API layer
Cost & Data
CST-01PassNo PII detected in log output
CST-02PassStorage buckets private; service roles scoped

Stack & dependency risk

Beyond bugs: how risky are the technologies this app is built on — maturity, lock-in, licensing, and whether they'll survive your growth.

Next.js 14 (App Router)Low riskfrontend + API

Mature, huge talent pool, strong upgrade path. Main caution: app is pinned to a deprecated minor version — schedule the upgrade before the gap widens.

maturity: highlock-in: lowlicense: MIThiring: easy
SupabaseMedium riskdatabase + auth

Solid choice at this stage, but the app bypasses Row Level Security in 6 queries using the service role key — this defeats Supabase's core security model and couples you to it incorrectly. Migration path to self-hosted Postgres exists but auth migration is non-trivial.

maturity: mediumlock-in: medium (auth)license: Apache-2.0hiring: moderate
OpenAI (single provider)High riskcore product feature

Your core feature depends on one model provider with no abstraction layer — calls are made directly in 11 files. A pricing change, deprecation, or outage hits revenue directly. Route calls through one internal module so a second provider can be added in days, not weeks.

lock-in: highcost volatility: highsingle point of failure
Dependency health (142 packages)Medium risknpm supply chain

2 packages with known CVEs, 4 unmaintained (no release in 2+ years), 1 package name that doesn't resolve — a hallmark of AI-suggested imports. 3 packages have a single maintainer (bus-factor risk). One copyleft-licensed package (GPL-3.0) is incompatible with a future commercial licensing model and should be replaced.

CVEs: 2abandoned: 4license conflicts: 1bus factor: 3

What it takes to run this

The skills your team needs at each stage — what you have, what's partial, and what's missing. Vibe-coding got you here; these capabilities get you to the next stage.

CapabilityLaunch (now)Growth (~1K users)Enterprise
Secure coding & reviewGapGapGap
CI/CD & release managementPartialGapGap
Monitoring & incident responseGapGapGap
Cloud cost managementPartialPartialGap
LLM ops (evals, guardrails, spend)GapGapGap
Data management & backupsHavePartialGap
Compliance & audit readinessN/APartialGap
Bottom line: at launch stage you can operate this with your current team plus fractional DevOps support (~0.25 FTE). At growth stage you need dedicated SRE/DevOps capability and LLM ops discipline — hire, contract, or upskill. Deop offers both: managed operations while you grow, and hands-on training so your team owns it long-term.

Enterprise readiness track

The gates enterprise buyers will check before signing. Not urgent today — but each gate takes weeks to months, so know the runway before you pursue that first big logo.

2/10 gates passed
EST. 4–6 MONTHS TO ENTERPRISE-READY
Gap
SSO / SAML & SCIM provisioning
Email-password auth only. Every enterprise security review starts here.
Gap
Role-based access control
Single user role today. Enterprise buyers need admin/member/viewer separation at minimum.
Gap
Audit logging
No record of who did what, when. Required for SOC 2 and most procurement checklists.
Gap
Tenant data isolation
Shared tables without enforced row-level policies (see SEC-02). Must be provable, not just intended.
Gap
SOC 2 readiness
No control documentation. Type I achievable in ~3 months once monitoring and audit logs exist.
Gap
AI governance disclosures
Enterprise buyers now ask: which models, what data leaves the tenant, retention terms, opt-outs. No documented answers yet.
Gap
Backup & disaster recovery
Daily snapshots exist but restore is untested and RTO/RPO are undefined.
Gap
SLA & support model
No uptime commitment or support tiers — required for contracts above ~$10K/yr.
Pass
Data residency
All data in a single named region; residency answer is clean for North American buyers.
Pass
Encryption at rest & in transit
TLS everywhere; storage encryption enabled by default.

Close all critical & high findings in a 2-week sprint

Deop's engineers fix everything above the line, set up monitoring and spend controls, and hand you a re-scan showing green — fixed price, no retainer required.

Book a remediation sprint or reply to this report — we'll walk you through it free