Changelog

What's shipped.

A running log of every public-facing change. New detector families, content, infrastructure improvements, operational additions — version by version.

Coverage at a glance

Per-version metrics.

VersionDetectorsRules in catalogueIndexable pagesTests
v1.2115135164103
v1.2015135163103
v1.1915135163103
v1.1815135162103
v1.1715135161103
v1.1615135161103
v1.1515134160103
v1.1415134159103
v1.1315134158103
v1.121512815792
v1.111512815692
v1.101512515586
v1.91512215382
v1.81512215382
v1.71411714771
v1.61411714671
v1.51411314163
v1.41411313963
v1.31410813863
v1.2149812263
v1.1149812035
v1.0149811917
v0.9149811917
v0.5801115
v0.130110

Per-version notes

Release history.

v1.21 · 2026-05-09

Homepage redesign + dedicated /feed page

Homepage

Cut the kitchen-sink design. The form is now the single focal point above the fold — centered, ~720px max width, full-width URL input with inline submit, two clean checkboxes, one trust line ("15 detector families · 135 rules · 22 articles · agent-ready"). Cut the right-column case-file canvas, the 5-cell stats strip, the 3-up coverage cards, the "Why this exists" wall of text, and the dogfood callout (lives at /blog/dogfooding-vibecheck for anyone who wants the full story). Below the fold: feed (6 rows + "Full feed →"), agent-skill callout, FAQ. Three sections instead of nine.

New page: /feed

Dedicated full-feed view. Pulls up to 50 findings from /api/feed, with severity filter (All / Critical / High / Medium / Low+Info) and platform filter (Pages / Vercel / Bolt / Netlify / Other). Privacy-note section explicitly enumerates what we persist and what we don't. Linked from the homepage and the footer.

Numbers

Sitemap: 163 → 164 URLs. Tests: 103/103. The redesign cuts ~250 lines from the homepage source.

v1.20 · 2026-05-09

Live findings feed — KV-backed

Persistence

New vibecheck_scans KV namespace bound. Each /api/scan call writes anonymized finding rows in the background via ctx.waitUntil() — best-effort, never blocks the scan response. Privacy contract documented in functions/_shared/feed.ts: persisted fields are rule, severity, ts (unix seconds), and platformShape (e.g. *.pages.dev, *.vercel.app, *.com). No URLs, no PII, no host names. 14-day TTL per row. Vibecheck's own dogfood scans are excluded so the feed isn't dominated by self-tests. Per-scan cap of 8 most-severe findings prevents one noisy app from overwhelming the feed.

Endpoint

New GET /api/feed?limit=N (cap 50, default 25). Returns { findings: [...], count: N } with public CORS so agents and dashboards can ingest it. Documented in /skill.md.

Homepage

Findings feed is now live. Page renders curated fallback rows server-side, then JS replaces them on load if /api/feed returns ≥3 rows. Still falls back gracefully to the curated set if the API is empty or unreachable. Footer status text auto-switches between "Anonymized to rule + severity + platform-shape" (fallback) and "Live data — N of the most recent findings" (real).

Smoke

New check: /api/feed must return a JSON object with a findings array. 28 → 29 smoke checks.

Numbers

Tests: 103/103. Sitemap unchanged. The feed surface is the first dynamic state vibecheck has — every previous version was stateless.

v1.19 · 2026-05-09

Agent skill manifest, homepage redesign, header standardization, findings feed

Agent skill — /skill.md

New self-contained markdown manifest at /skill.md that a coding agent can ingest in one fetch to learn how to invoke vibecheck on a user's behalf. Covers when to scan, free-tier POST /api/scan invocation, paid-tier escalation via Authorization: Bearer, plain-English consequence translations for surfacing critical findings to a human, and full agent-loop examples. Linked from the homepage hero, the /agents page, llms.txt, llms-full.txt, and the sitemap. _headers sets Content-Type: text/markdown on this path.

Homepage redesign

Greyline-style hero with deep-pine background and two-column layout: scan form left, sample case-file canvas mockup right (Grade F report with five plausible findings). New stats strip, anonymized findings feed, three-up coverage cards, agent-skill callout, dogfooding callout pointing at the public self-scan grade D writeup, all anchored to the existing site.css design tokens.

Header standardization

Bug fix: the nav-links block on every page was a different set. Standardized to a canonical Blog · Fix guides · Breaches · Agents · Pricing across all 34 HTML pages via a one-shot tsx replacement script. Link in the footer to skill.md.

Findings feed

Curated, anonymized list of recent findings on the homepage. Domains redacted, platform shape preserved (*.pages.dev, *.bolt.new, *.vercel.app, etc.). Each row links to the per-rule /fix/<rule> page. KV-backed real findings come in a future iteration once we add scan persistence.

Numbers

Sitemap: 162 → 163 URLs. Tests: 103/103. Article count unchanged. The /skill.md manifest is a non-blog content piece.

v1.18 · 2026-05-09

CSRF edge cases — five-pattern article

Content

New /blog/csrf-edge-cases-vibe-coded — 11 min auth/CSRF article. Five edge cases vibe-coded apps consistently get wrong even when the obvious basics (SameSite cookies) are in place: state-changing GETs slipping through SameSite=Lax, CSRF tokens compared with === (timing-attackable), parent-domain cookies surviving subdomain takeovers, bearer-token auth (Supabase / Firebase / Clerk) sidestepping CSRF but creating XSS-amplification risk, and permissive content-type handling on JSON endpoints.

Plus the 2026-default CSRF stack: SameSite=Lax + state changes through non-GET methods + JSON-only endpoints with content-type checks + bearer-token apps paired with strict CSP. Cross-links into the JWT, CORS, and CSP posts that handle adjacent surfaces.

Numbers

Article count: 21 → 22. Sitemap: 161 → 162 URLs. Tests / rules / detectors unchanged.

v1.17 · 2026-05-09

Cutover to vibecheck.themeridianlab.com

vibecheck now lives at vibecheck.themeridianlab.com as a Meridian Lab subdomain (matching greyline.themeridianlab.com's pattern). All ~1,400 in-source references — canonical URLs, JSON-LD mainEntityOfPage, breadcrumb item URLs, OG tags, sitemap entries, llms.txt — switched in one pass. Smoke 28/28 against the new domain. The bare vibecheck-32f.pages.dev URL continues to serve as a fallback.

Operationally: drops the "buy a domain" item from the pre-launch HANDOFF list and saves the registrar fee. Reversing later (acquiring a separate apex like vibecheck.dev and 301-redirecting) is cheap if we ever want it.

v1.16 · 2026-05-09

Sourcemap leaks — new rule + paths-finding cross-linking + article

Detection

New exposed_sourcemap rulebook entry with full per-bundler fix reference (Vite, Next.js, webpack, esbuild, Rollup). Paths detector now emits the rule on sourcemap finds, and the renderer cross-links sourcemap findings to /fix/exposed_sourcemap via a new optional rule field on PathFindingType. Other path findings (env files, .git/HEAD, etc.) can opt into the same cross-linking by adding their own rule names later.

Content

New /blog/sourcemap-leaks-vibe-coded — 8 min build/sourcemaps article. Three-minute attack walkthrough (curl → fetch map → source-map-cli decode → grep), per-bundler config reference, post-leak response, three legitimate reasons to ship maps anyway (Sentry-style monitoring, customer-support tooling, open-source apps).

Numbers

Catalogue: 134 → 135 rules. Sitemap: 160 → 161 URLs. Article count: 20 → 21. Tests still 103.

v1.15 · 2026-05-09

service_role production runbook — the third Supabase pillar

Content

New /blog/service-role-in-production — 12 min runbook covering correct server-side use of Supabase service_role. Three pieces now form a complete service_role lifecycle: incident response when leaked, RLS patterns for cases where service_role isn't needed, and this new piece for when it is. Sections: when to use service_role, where it lives in runtime config, the per-request authorization layer, the webhook verification-first pattern, audit logging discipline, rotation strategy.

Cross-linking

New piece linked from the leak-response article ("what to do with the new key after rotation"), the RLS pillar ("when service_role isn't needed"), the webhook secrets post (verification-first pattern), and the JWT mistakes post (auth-side patterns this builds on).

Numbers

Article count: 19 → 20. Sitemap: 159 → 160 URLs.

v1.14 · 2026-05-09

Dogfooding write-up — public self-scan documentation

Content

New /blog/dogfooding-vibecheck — 5 min operations post documenting what vibecheck's smoke runs against vibecheck's own deploy returns, why the current grade is D, and what the smoke gate enforces. Direct follow-up to the v1.13 CSP detector flagging vibecheck's own CSP. Self-scan output is reproducible by anyone via curl.

Numbers

Article count: 18 → 19. Sitemap: 158 → 159 URLs. Tests / rules / detectors unchanged.

v1.13 · 2026-05-09

CSP weakness analysis — 6 rules + 11 tests + bypass-walkthrough article

Detection

Headers detector now parses Content-Security-Policy and Content-Security-Policy-Report-Only headers and emits findings for six specific weaknesses:

  • csp_unsafe_inline_scripts (high) — 'unsafe-inline' in script-src
  • csp_unsafe_eval (high) — 'unsafe-eval' in script-src
  • csp_wildcard_script_src (high) — *, https:, or http: in script-src
  • csp_data_uri_in_script_src (high) — data: in script-src
  • csp_missing_default_src (medium) — no default-src and no script-src
  • csp_report_only (info) — Report-Only without enforced policy

script-src falls back to default-src per the CSP spec when the former is absent — the analyzer respects this. New parseCsp() exported from the headers module so other consumers can use it.

Content

New /blog/csp-bypass-vibe-coded — 11 min headers/CSP article. Each weakness explained, the attack each enables, and the strict-CSP recipe at the end (with notes on why each directive in the recipe is the way it is). Cross-links from the CORS article since they pair as the two header-side bug categories.

Tests

103 tests (was 92). 11 new CSP tests covering: parseCsp directive normalization, each weakness emission, default-src fallback for script-src, Report-Only suppression when enforce mode is also set, and the strict-CSP no-findings case.

Numbers

Catalogue: 128 → 134 rules. Sitemap: 157 → 158 URLs. Article count: 17 → 18.

v1.12 · 2026-05-09

RLS patterns deep-dive — second pillar article

Content

New /blog/rls-patterns-vibe-coded — 16 min RLS pattern reference. Eight patterns with the actual policy SQL: per-user ownership, public-readable with owner-write, tenant-scoped via membership table, profile pattern, member-of-conversation, soft-delete, append-only audit log, visibility levels. Each section includes the gotcha that always trips people up (the WITH CHECK on UPDATE policies, service_role bypass, JWT claim staleness, performance pitfalls with subquery-heavy policies). Plus a three-level testing strategy (psql role-switching, integration tests, vibecheck active probing).

Cross-linking

New article cross-linked from the vibe-coding security guide (pillar), the Moltbook breach case study, and the supabase service_role leak post. The new article links to /fix/supabase_anon_only_no_rls, the Moltbook case study, and the platform-specific articles (Lovable, Firebase) that cover related material.

Numbers

Sitemap: 156 → 157 URLs. Article count: 16 → 17. Sitemap priority of new article: 1.0 (matches the existing pillar guide — both are top-of-funnel authority pages).

v1.11 · 2026-05-09

Active CORS probing — 3 rules + 6 tests + middleware-fix article

Detection

Headers detector now sends two active CORS probes per scan: one with Origin: https://attacker.example and one with Origin: null. Inspects the response's Access-Control-Allow-Origin and Access-Control-Allow-Credentials headers and emits up to three findings:

  • cors_origin_reflected (high) — server reflects arbitrary Origin in ACAO
  • cors_origin_reflected_with_credentials (critical) — same + Allow-Credentials: true (the lethal CORS bug)
  • cors_null_origin_allowed (high; critical with credentials) — server accepts Origin: null from sandboxed iframes / data: URLs / file:

Existing cors_acao_wildcard_with_credentials rule gets cross-links to the new entries.

Content

New /blog/cors-misconfig-vibe-coded — 9 min headers/CORS article. The five CORS patterns vibecheck flags, the attack each enables (with the cross-origin authenticated-data-theft walkthrough), and copy-paste middleware fixes for Express + cors, Hono, Next.js Route Handlers. Plus the unanchored-regex footgun.

Tests

92 tests (was 86). 6 new CORS-probe tests using vi.fn to mock fetch by sent Origin header — covers reflection with/without credentials, null-origin acceptance with/without credentials, properly-allowlisted origins, and no-CORS-response cases.

Numbers

Catalogue: 125 → 128 rules. Sitemap: 155 → 156 URLs. Article count: 15 → 16.

v1.10 · 2026-05-09

Webhook secret detection — 3 patterns + 4 tests + provider-by-provider article

Detection

Three new context-aware secret patterns: github_webhook_secret (critical) for GITHUB_WEBHOOK_SECRET / GH_WEBHOOK_SECRET assignments; slack_signing_secret (critical) for the SLACK_SIGNING_SECRET 32-hex pattern; webhook_secret_generic (high) for the catch-all WEBHOOK_SECRET / HOOK_SECRET shape. Variable-name context disambiguates these from generic random-string matches.

Content

New /blog/webhook-secrets-leaked — 8 min incident-response guide. Provider-by-provider rotation walkthroughs (Stripe, GitHub, Slack, generic), the universal incident-response shape, and the prevention rule (distinct env-var names per provider, build-time grep, pre-commit hook). Each section links to its dedicated /fix/<rule> page.

Tests

86 tests (was 82). 4 new pattern tests: GitHub / Slack / generic webhook detection plus a negative test confirming we don't match bare variable names without an assigned value.

Numbers

Catalogue: 122 → 125 rules. Sitemap: 153 → 155 URLs. Article count: 14 → 15.

v1.9 · 2026-05-09

JWT test fixture + about/index/press detector-count refresh

New /test-fixture/leaky-jwt.html with five hand-crafted JWTs that each trigger one rule (alg=none, hardcoded admin claims, no-exp, long-lived, expired). Smoke gains a check that scans the fixture and asserts all 5 jwt_* rule names appear in the output. Smoke total: 27 → 28 checks.

Stale "14 detectors" / "Three families" / "Ten patterns" copy on /about, /index, and /press updated to current numbers (15 detector families, 60+ secret patterns, BaaS coverage no longer "queued"). FAQ JSON-LD on /index updated to match visible HTML.

v1.8 · 2026-05-09

JWT detector — 5 rules + 11 tests + article

Detection

New JWT detector decodes every JWT-shaped string in the bundle and emits up to 5 rules per token: jwt_alg_none (critical) for unsigned tokens, jwt_admin_in_client (high) for hardcoded privileged claims (role: "admin", service_role, is_admin: true, etc.), jwt_no_expiration (high) for missing exp, jwt_long_lived (medium) for exp > 30 days out, jwt_expired_in_client (info) for stale fixtures. Safe public-issuer tokens (Supabase anon) are skipped — covered by their own detector.

Detector mechanics

Decodes header + payload via base64url, inspects alg in header and iss / exp / role fields in payload. Privilege detection covers role-string fields (role, scope, scopes) and boolean flags (is_admin, isAdmin, is_superuser, is_owner, is_staff). Tokens are deduplicated within a scan; outputs always carry a redacted form, never the live token.

14 detectors → 15. Catalogue: 117 → 122 rules. Sitemap: 147 → 153 URLs.

Content

New /blog/jwt-mistakes-vibe-coded — 9 min auth/JWT article. Five patterns vibecheck flags, with the actual jose and jsonwebtoken verifier code to copy. Covers algorithms: ["RS256"] pinning, the access/refresh-token split, build-guards against admin-claim leakage.

Tests

82 tests (was 71). 11 new JWT tests covering decode, malformed inputs, alg=none, role/is_admin detection, missing/long/expired exp, Supabase issuer skip, redaction, and dedup of repeated tokens.

API

ScanReport gains a jwts: JwtFinding[] field. /api/spec, /scan-output-schema.json updated. Renderer adds a "JWTs in the bundle" section with rule cross-links.

v1.7 · 2026-05-09

OpenAI / Anthropic incident-response post + cross-link backfill

Content

New /blog/openai-anthropic-key-exposure — 7 min incident-response guide for leaked sk- and sk-ant- keys. Five-step response (rotate, scope via Restricted Keys / Workspaces, audit usage anomalies, find every commit and CI log, prevent the next one with a server proxy). Mirrors the Stripe and Supabase response-post shape readers already know.

Cross-linking

Every platform article (Lovable, Bolt, v0, Replit, Convex, Appwrite, Pocketbase) now links to the comparison post in its Related section. Cross-platform links between BaaS articles (Convex ↔ Appwrite ↔ Pocketbase ↔ Firebase). Pillar guide and Stripe / Supabase response posts now reference the comparison + Moltbook breach. Moltbook article links to the comparison; /breaches Moltbook entry links to the case study.

v1.6 · 2026-05-09

Firebase detection — RTDB / Firestore / Storage probes + 4 rules + article

Detection

Firebase detector rewritten to emit 4 new rules across the three Firebase data surfaces: firebase_project_exposed (info), firebase_rtdb_open (critical), firestore_collection_public_read (high), firebase_storage_public_list (high). Each finding wraps with a /fix/<rule> cross-link in the scan report. Catalogue total: 117 rules (was 113).

Detector mechanics

Project ID extraction from projectId, databaseURL, storageBucket, and Firestore REST URLs. Probes (read-only): RTDB /.json?shallow=true; Firestore /v1/projects/<id>/databases/(default)/documents/<collection> for 7 common collection names; Storage /v0/b/<bucket>/o list endpoint. Default-bucket inference (<project>.appspot.com) so apps that omit explicit storageBucket still get probed.

Content

New /blog/firebase-rules-vibe-coded — 10 min platform article. Six checks before going public: RTDB rules, Firestore rules, Storage rules, Auth providers (anonymous-auth gotcha), App Check enforcement, and what's actually safe to ship in the client config. Includes copy-paste rule blocks for each surface.

Tests

71 tests (was 63). 8 new Firebase detector tests covering ID extraction, project_exposed emission, RTDB open detection, RTDB-locked-down behaviour, Firestore collection probes, Storage bucket list, and the no-projects no-op.

v1.5 · 2026-05-09

Comparison post + Moltbook breach case study

Content

New /blog/lovable-vs-bolt-vs-v0-vs-replit — 11 min comparison covering hosting model, RLS posture, secrets handling, sourcemaps, and CI defaults across the four major AI app builders. The matrix readers ask for when picking between them.

New /blog/anatomy-of-a-moltbook-breach — 12 min forensic case study of the January 2026 Moltbook breach. Timeline from launch tweet to data dump, the JWT-fingerprint mechanism, and the four lines of SQL that would have prevented it.

Site

Both posts wired into /blog index, functions/sitemap.xml.ts, and llms-full.txt. OG images added to the build manifest. Sitemap grew to 141 URLs.

v1.4 · 2026-05-09

BaaS rules + 3 fixtures + /api/rules + JSON Schema + Dockerfile + security.txt

Detection

Five new BaaS-specific rules emitted by the Convex/Appwrite/Pocketbase detector: convex_deployment_exposed, convex_function_no_auth, appwrite_collection_public_read, pocketbase_collections_metadata_public, pocketbase_list_rule_blank. Each finding wraps with a rulebook cross-link to /fix/<rule>. Catalogue total: 113 rules (was 108).

Test fixtures

Three new in-repo HTML fixtures (/test-fixture/leaky-cookies.html, /test-fixture/leaky-headers.html, /test-fixture/leaky-paths.html) so the smoke script has stable, high-signal targets for cookie / headers / framework / prompts / leaks / redirect detectors.

Endpoints

New /api/rules — full rule catalogue as JSON, supports ?fields=, ?severity=, ?q= filters. Cached 5 min / 1 hr edge. New /scan-output-schema.json — full JSON Schema (draft 2020-12) for the /api/scan response shape, validates every finding type and severity enum. For programmatic validation by downstream consumers.

Distribution

Dockerfile for the CLI package — drop-in container for CI environments without a Node toolchain. Plus /.well-known/security.txt for inbound vulnerability reports.

v1.3 · 2026-05-08

10 more secret patterns + reusable GitHub Action + Appwrite/Pocketbase guides

Detection

Added 10 secret patterns: Plaid (financial), Twilio Auth Token (paired with Account SID), HubSpot, Asana, Atlassian (Jira/Confluence/Trello), Auth0 Management API token, Datadog Application Key, Brevo, Stripe Connect Account ID (info), Supabase personal access tokens (`sbp_*`).

Distribution

New `.github/workflows/scan.yml` — a drop-in reusable GitHub Action workflow. Two jobs: gating scan that exits non-zero on critical findings; full-report capture as a workflow artifact for post-merge review.

Content

Added Appwrite security article (Platform · Appwrite); Pocketbase security article (Platform · Pocketbase); public `/changelog` page; marketing/ directory with launch-tweet templates, cold-email templates, KOL outreach list, SEO target keywords.

Site

JSON-LD Organization data on the Meridian Lab footer for entity recognition. Fix-guide search/filter box on `/fix`. New `/api/spec` endpoint documenting the response JSON shape for downstream consumers.

Operations

Added docs/HANDOFF.md — permanent record of every task that requires the operator's auth or judgment, separately from chat-history memory.

v1.2 · 2026-05-08

CLI package + 4 docs + 3 pages + Convex article + integrity tests + ops

Engineering

New @vibecheck/cli npm package — zero-deps Node CLI, --format human|json|github-actions, --exit-on critical for CI gating. Documented at /agents.

New endpoints: /api/health (operational liveness), /api/version (build version + rule count + protocol identifier).

New scripts/smoke.sh — 27-check post-deploy verification.

Tests grew 35 → 63 across two new files: test/rulebook.test.ts (16, integrity) + test/autofix.test.ts (12, RLS pattern coverage). Renderer hardened with jsonForScript() to prevent JSON-LD context breakout (XSS hardening, with explicit test).

Content

New /press with fact sheet, citation-ready stats, ready-to-paste copy (one-liner + 30s pitch + tweet + 50w + 100w boilerplates with copy buttons), brand assets gallery.

New /compare — vibecheck vs Wiz vs Snyk vs Lovable's scan. Honest comparison table + per-tool "use when" callouts.

New /blog/convex-security — 7-min platform article, 6 checks for any Convex app.

Documentation

New docs/MCP.md — MCP server reference. New docs/RUNBOOK.md — operational runbook for deploy / verify / rollback / secrets / incident response.

v1.1 · 2026-05-08

MCP tests + enriched rulebook + /breaches + OG images

18-test MCP suite covering JSON-RPC protocol surface (initialize, tools/list, tools/call validation, batch support, error codes) using vi.mock to stub the network layer.

Five high-traffic rulebook entries got framework-specific snippets: cookie-flag entries (covers all 3 cookie rules) — Express, Next.js Route Handlers, Hono, Fastify, Remix/SvelteKit; supabase_service_role_in_client — admin client init for Next.js, Express, Hono/Workers, Edge Functions; stripe_webhook_secretconstructEvent/constructEventAsync per framework; exposed_env_file — block-the-path config for CF Pages, Vercel, Netlify, Nginx, Apache.

New /breaches public tracker with 5 entries (Moltbook breach, Lovable security crisis, SupaExplorer 20K-app population scan, SymbioticSec 1,072-app scan, Wiz Research 20% finding). ItemList JSON-LD; per-incident "Lesson" callouts linking to relevant /fix/<rule> pages.

New scripts/build-og-images.ts generates 106 1200×630 OG PNGs at build time using @resvg/resvg-js: 1 site default, 98 per-rule, 7 per-blog-article. Wired og:image + twitter:image tags into every page.

v1.0 · 2026-05-08

Comprehensive docs + static-rendered fix pages

Eight production-grade docs in /docs/ covering engineering reference (ARCHITECTURE, DETECTORS, RULEBOOK, DEPLOYMENT), Meridian Lab patterns to copy across the family, marketing positioning + audiences + comparison + banned-words list, the launch-checklist with channel-by-channel ready-to-paste copy (Product Hunt + HN + X + LinkedIn + IH + Reddit + cold-pitch), and the public CHANGELOG.

Static-rendered the 98 /fix/<rule> pages at build time. The runtime Pages Function now serves only as fallback for typos and rules added between deploys. Edge cache hit rate improved dramatically.

v0.9 · 2026-05-08

Rulebook expanded 19 → 98 entries, full cross-linking

Every emitted detection rule now has a corresponding /fix/<rule> page, plus conceptual entries (RLS not working, Supabase storage bucket public) that aren't tied to a single rule but are valuable SEO targets. Helpers leakedKey() and cookieFlag() keep the catalogue DRY.

Slug alignment fixed so cross-linking actually works: scan reports now link findings (rule names in secrets, headers, framework, prompts, leaks) to /fix/<name>. Sitemap auto-grew to 112 URLs.

v0.8 · 2026-05-08

MCP server, Convex function probing, /fix programmatic SEO

New /api/mcp endpoint speaking JSON-RPC 2.0 per the MCP spec. Three tools exposed: vibecheck_scan, vibecheck_secrets, vibecheck_rls_sql. Connect from Claude Code with three lines of config.

Convex detector now extracts api.<module>.<func> names from client bundles and POSTs each as a query to detect anonymous-readable functions.

New open-redirect detector (probes redirect-shaped query params with sentinel external URLs). New security.txt absence check. 8 new secret patterns: Anyscale, Modal, fal.ai, Deepgram, ElevenLabs, Perplexity, HF legacy, Azure Storage, Bearer tokens.

Programmatic SEO: src/rulebook.ts rule catalogue + /fix/[name] Pages Function rendering markdown to HTML with TechArticle JSON-LD.

v0.7 · 2026-05-08

BaaS detectors + deep-scan tier + 3 new articles

New backend-as-a-service detector covering Convex (function probing), Appwrite (collection listing), Pocketbase (records + metadata).

New deep-scan tier: subdomain enumeration via Certificate Transparency logs. Gated behind ?deep=1. Adds 5–30s.

Three new long-form articles: v0 by Vercel security, Replit Agent security, Stripe live key emergency response.

v0.6 · 2026-05-07

Three new detector families + GitHub App webhook scaffold + Bolt article

LLM prompt template detector. Default-credentials detector covering 14 self-hosted platforms (Jenkins, Grafana, phpMyAdmin, Portainer, etc.). Information leaks detector (internal IPs, staging hostnames, dev comments).

Sourcemap content scanning: when paths detector finds a .map, scanner re-runs the secrets detector against the unminified source.

GitHub App webhook scaffold at /api/github/webhook. HMAC-verified, refuses requests until GITHUB_WEBHOOK_SECRET is set.

v0.5 · 2026-05-07

8 detector families, agent SDKs, paywall scaffold, AEO discoverability

Cloud storage probes (S3, GCS, Azure Blob, R2 listing detection). Cookie flag analysis (Secure / HttpOnly / SameSite missing on auth-shaped cookies). Framework detector (generator tags, Next.js dev mode, React/Vue/Redux DevTools enabled in production, verbose error stack traces, robots.txt analysis).

17 new secret patterns: AI inference platforms, deploy platforms, transactional email, observability tokens.

New /pricing with 4 tiers; new /agents documenting 4 integration shapes (JSON API, MCP, CLI, Claude Skill bundle); new /api/waitlist.

AEO discoverability: Link: rel="llms" HTTP header, <link rel="alternate"> tags, <meta name="llms-txt"> on every page.

v0.4 · 2026-05-07

3 new detector families + Meridian Lab integration + self-harden

Path probes (.env, .git/HEAD, .DS_Store, source maps, common backup files). API surface detector (GraphQL introspection, OpenAPI/Swagger spec exposure, Swagger UI / ReDoc). Response-headers detector (password fields over HTTP, missing HSTS/CSP, mixed content, CORS wildcard+credentials).

New /about page positioning vibecheck within The Meridian Lab. Sister-product links (AgentProof, Greyline) in every footer. Self-harden via _headers: vibecheck's own deploy now passes its own header inspection.

v0.3 · 2026-05-07

Meridian Lab design system rebuild

Complete visual redesign per the canonical Meridian Lab design system v1.0. Cream paper background, olive-charcoal ink, Inter (product UI) + Courier Prime (parent voice) typography, sharp corners everywhere, amber accent (#D68B38), "Building inspector" material metaphor, "CASE VC-001" finding identifiers.

v0.2 · 2026-05-07

Autofix UI + demo + 3 articles + AEO foundation

RLS auto-fix wired into scorecard. New /demo page. Three long-form articles: vibe coding security guide (pillar), Supabase service_role key emergency response, Lovable security checklist. Landing FAQ with 6 Q/A pairs backed by FAQPage JSON-LD. /llms.txt + /llms-full.txt. Sitemap referenced from robots.txt.

v0.1 · 2026-05-07

TypeScript port live on Cloudflare Pages

The original Python CLI ported to TypeScript and deployed on Cloudflare Pages with Pages Functions. Three detector families: Supabase (JWT decode + RLS probe), Firebase (RTDB), generic secrets (10 patterns). 10 unit tests. Live at vibecheck-32f.pages.dev.

Run an inspection Read the blog