skip to content
fizzgig
sign in
// product
code auditdetect what shippedbrand and reachsoonlift qualityperfect memorysoondecision graph
// build better
sourdough startersproject kicks-off in 1 prompt
// resources
pricingdocsblogabout
sign inrequest access →
audit suite/ux/broken_link_finder
ux / dxv0.2.0free

fizzgig__broken_link_finder

flags empty hrefs, broken internal routes, anchor-id mismatches, mailto/tel issues.

// ai does this over time

the AI scaffolds a page with placeholder links. half are href="#", a quarter point to routes that don't exist, the rest go to anchors the page lost three commits ago. you ship them all because the AI didn't flag any of them and you stopped clicking everything.

// the tool does

6 checks: empty href attributes, internal route integrity (cross-reference vs your routes catalogue), anchor-id integrity (hash links to non-existent IDs in the page), external link security (target="_blank" without rel="noopener noreferrer"), mailto/tel format validation.

// so you can

every link goes somewhere. catches the dead-link sweep nobody does until a user reports it.

● live● v0.2.0● free
// input schema
schema · application/json
{
"type": "object"
"required": [
"project"
]
"properties": {
"project": {
"type": "string"
"description": "the project slug or path"
}
"strict": {
"type": "boolean"
"default": false
"description": "fail on warnings, not just errors"
}
}
}
// output schema
schema · application/json
{
"type": "object"
"properties": {
"ok": {
"type": "boolean"
}
"findings": {
"type": "array"
"items": {
"type": "object"
"properties": {
"severity": {
"enum": [
"info"
"warn"
"high"
"critical"
]
}
"message": {
"type": "string"
}
"fix": {
"type": "string"
}
}
}
}
}
}
// example call from cursor
~/myapp — example output
→ fizzgig__broken_link_finder(project="myapp")
{
"ok": false,
"findings": [
{ "severity": "high",
"message": "policy uses user_id without auth.uid()",
"fix": "USING (auth.uid() = user_id)" }
],
"scanned": 3, "duration_ms": 142
}
// reviews
@maya.codes★★★★★
2 days ago

caught a policy that would have leaked every user's comments. shipped a fix in 4 minutes.

@solo_at_3am★★★★★
1 week ago

first tool i installed. it's the one that pays for itself.

@vibebuilder★★★★☆
2 weeks ago

works great. one false positive on a join table — easy to ignore.

// primary action
add to your editor
paste this into your mcp config.
.cursor/mcp.json
{
  "fizzgig": {
    "url": "https://mcp.fizzgig.ai",
    "tools": ["broken_link_finder"]
  }
}
full setup guide →
// pricing
free
unlimited calls on the free tier.
// related tools
a11y_audit
v0.2.0
→
legibility_review
v0.1.0
→
brand_consistency
v0.2.0
→
fizzgig

the fluffy guardian of vibe-coded apps. growls at insecure code so you don't have to.

all systems operational

product

code auditbrand and reach (soon)perfect memory (soon)pricingdocschangelog

community

sourdough startersdiscord (soon)github (soon)x / twitter (soon)rss (soon)

company

aboutcontactterms (soon)privacy
© 2026 fizzgig labs.
v1.4.2 · 2026-05-01