Classical painting of a scholar in armor reviewing a ledger, standing for careful launch stewardship

What we check

Every quiet gate before you ship.

Wardloom is a read-only launch checker for vibe-coded apps. We look at security, SEO, GEO/AEO, and health signals on URLs, repos, and snippets you own, then tell you what to fix before real users find it.

Security

Defensive checks mapped to how apps actually break.

Twelve security families cover secrets, config, auth, supply chain, deployment, and deterministic ownerless-endpoint and LLM patterns. Traffic, legal, and privacy signals are labelled honestly as advisory where static review cannot prove an outcome. Analysis stays read-only. We never run exploits on your stack.

Hardcoded secrets and API keys

We look for live API keys, tokens, and credentials sitting in client bundles or source where a stranger can copy them.

One leaked Stripe or OpenAI key can empty a wallet overnight. Catching secrets before launch is the cheapest security win for vibe-coded apps.

CORS and origin policy

We check whether your cross-origin rules are wide open, especially wildcards paired with credentials.

Loose CORS lets other sites call your APIs as if they were yours. Tight origin policy keeps browser traffic on the paths you meant to allow.

Security headers

We probe for missing CSP, HSTS, X-Frame-Options, and related hardening headers on live URLs.

Headers are cheap defenses against clickjacking, mixed content, and script injection. Search engines and browsers both notice when they are missing.

Dependency CVEs

We scan your dependency tree for known-vulnerable or abandoned packages that still ship with the app.

Most vibe-coded stacks inherit risk from npm. Known CVEs are public; attackers do not need inventiveness, only an unpatched install.

Env and config exposure

We look for server-only secrets used in the client, exposed dotfiles, and keys that belong behind the server wall.

AI scaffolds often put REACT_APP_ or NEXT_PUBLIC_ in front of secrets by habit. Config exposure is how private settings become public pages.

Auth and session flaws

We review weak JWT secrets, missing rate limits, and insecure session patterns that show up in code and config.

Login is the front door. Soft session handling is how accounts get guessed, replayed, or shared without you noticing.

Ownerless records and endpoints

We look for functions and routes that accept a record identifier without first proving the signed-in user owns that record.

A valid identifier should never be enough to read or change someone else's data. Ownership checks keep account boundaries intact.

Debug artifacts and source maps

We check for debug flags, verbose errors, and source maps that still ship to production.

Debug leftovers hand attackers a map of your code. They also make your app look unfinished to careful users and reviewers.

Deployment readiness

We look for hardcoded ports and URLs, missing health checks, and environment assumptions that break outside localhost.

A deploy that only works on your laptop is not launched. Readiness checks catch the last-mile mistakes AI tools skip.

Traffic readiness

We review code and configuration for missing rate limits, unbounded queries, long synchronous work, and absent timeouts or retries.

These signals identify places that deserve capacity planning before real traffic arrives, without sending load at your application.

Advisory. These signals are reported and roadmapped, but never counted in your security score — a static review can't prove how your app behaves under load.

Legal and privacy signals

We report concrete signals such as policy-link presence, tracker inventory, cookie notices, licenses, and payment-card-shaped values in source.

A factual inventory helps you find questions that may need product, privacy, or legal review without pretending to answer them.

Advisory and informational only. We report signals, not verdicts, and nothing here is legal advice. Excluded from the security score and from the remediation roadmap.

LLM and agent security

We look for secrets entering prompts, model output reaching dangerous sinks, broad tool permissions, and missing rate or cost limits.

Agentic code joins untrusted text to powerful actions. These patterns deserve a deliberate human review before deployment.

Deterministic pattern review only. Every finding here is marked needs verification and never moves your score — we're pointing at something to look at, not telling you it's broken.

Verified deployment

Live deployment checks, with your leave.

These checks run only after you verify control of the domain. Wardloom uses read-only GET requests and DNS lookups against a fixed path list; it never fuzzes your application or tries an exploit.

Dangling DNS records

We resolve the domain's CNAME chain and look for a destination that no longer answers.

An abandoned provider mapping can leave a hostname claimable by someone else.

Exposed administration routes

We request a short, fixed list of common administration paths and note responses that deserve a manual look.

A matching response is only a lead. Routing fallbacks and login pages can look similar, so confirm the route by hand before acting.

Directory listing

We check a fixed directory path for a response that appears to enumerate files.

A confirmed listing can expose build artifacts, backups, or internal file names that were never meant to be browsed.

GraphQL introspection

We make a read-only introspection request to the conventional GraphQL path.

A production schema can reveal operations and types that make later probing easier, even when it exposes no data by itself.

Public API documentation

We request a fixed list of common OpenAPI and documentation paths.

Unexpected public documentation can disclose private endpoints, parameters, and authentication assumptions.

HTTPS enforcement

We confirm that an HTTP request is redirected to the same hostname over HTTPS.

Consistent HTTPS protects traffic from downgrade and keeps cookies and credentials off plaintext connections.

TLS certificate health

We inspect the certificate presented by the verified hostname for validity and approaching expiry.

An invalid or expiring certificate can interrupt access and train users to ignore browser security warnings.

Verbose error pages

We request one fixed missing path and inspect the response for framework or stack details.

Production error pages should help users recover without disclosing internals that make the application easier to map.

SEO · GEO · Health

Discoverability belongs in the same launch gate.

A secure app that nobody can find still fails the launch. On live URLs we score SEO readiness, GEO/AEO signals for AI answer engines, and health (Core Web Vitals plus crawl). Those pillars feed Launch Confidence beside the security Vibe-Check.

Classical pastoral painting with a road leading to a distant gate, standing for launch readiness

SEO readiness

On URL scans we check title tags, meta descriptions, H1 structure, canonical URLs, Open Graph and Twitter cards, image alt text, robots.txt, sitemaps, HTTPS, and JSON-LD structured data.

Search ranking starts with basics. Clean on-page SEO helps Google and other crawlers understand your product page, pricing, and docs without guessing.

GEO and AEO signals

We check llms.txt, AI search-citation crawler rules in robots.txt, server-rendered text, lists and tables that extract cleanly, byline/date signals, and semantic HTML that agents can parse.

Generative engine optimization (GEO) and answer engine optimization (AEO) decide whether ChatGPT, Perplexity, or Claude can cite you. If citation bots are blocked or the HTML is empty, AI answers skip your app.

Health and Core Web Vitals

We combine PageSpeed Insights metrics (LCP, CLS, and related CWV) with a light same-origin crawl for broken pages, unexpected noindex tags, and missing titles.

Slow or broken pages lose both users and rankings. Health signals feed Launch Confidence so you know if the live site is fit to ship.

Ready when you are

Run the catalogue on your own stack.

Same defensive, read-only posture every time. Paste a URL, point at a public GitHub repo, or drop a snippet. You get a Vibe-Check score, Launch Confidence, a fix roadmap, and a handoff prompt for your AI coding tool.