Features
Every way your docs can break. Caught automatically.
Six layers of automated docs QA — code execution, API validation, link checking, hygiene scans, GitHub PR integration, and CI gating.
01 / Code Validation
Every JS example, actually executed
zivodoc extracts every code block from your docs and runs JavaScript examples in an isolated WASM sandbox to catch ReferenceError, TypeError, and runtime crashes. JS, TypeScript, JSON, and YAML blocks are also syntax-checked. Broken imports and undefined references are flagged before your users hit them.
- JavaScript runtime execution via QuickJS WASM
- Smart skip heuristics so snippet blocks don’t false-positive
- JS and TypeScript syntax checking
- JSON and YAML structural validation
- Per-block error context with file path and line number
- @zivodoc-skip annotation to opt a block out
$ zivodoc validate
Validating 423 code blocks...
JavaScript runtime 267 ran, 12 runtime errors
JS/TS syntax 389 parsed, 4 syntax errors
JSON 36 parsed, 2 invalid
YAML 18 parsed, 1 invalid
Results: 19 broken examples across 8 pages.02 / API Validation
Docs vs spec, always in sync
Point zivodoc at your OpenAPI spec and it compares every API reference in your docs against the actual definition. Required params marked optional, missing response fields, outdated schemas — all caught automatically. Works with OpenAPI 3.0, 3.1, and Swagger 2.0.
- Compare docs against OpenAPI/Swagger specs
- Detect parameter mismatches (required, optional, type)
- Validate response schemas against documented examples
- Catch missing or renamed endpoints
- Support for OpenAPI 3.0, 3.1, and Swagger 2.0
- Inline diff showing exactly what diverged
$ zivodoc validate --openapi spec.yaml
Comparing docs against OpenAPI spec...
/v1/charges POST — docs show amount as optional (spec: required)
/v1/refunds GET — docs missing payment_intent param
/v1/tokens POST — response schema outdated (missing livemode)
Found 14 mismatches across 189 endpoints.03 / Link Checking
Zero dead links, zero broken anchors
Every internal link, external URL, and anchor reference is validated. Pages that got renamed, sections that moved, external resources that disappeared — zivodoc finds them all. Runs fast with concurrent checks and respects rate limits on external sites.
- Internal and external link validation
- Anchor/fragment checking within pages
- Redirect chain detection (301, 302)
- Rate-limited external checks to avoid blocks
- Concurrent checking for fast scan times
- Grouped results by page for easy fixing
$ zivodoc check-links
Checking 2,341 links across 1,847 pages...
BROKEN /guides/auth.md → /api/tokens (404)
BROKEN /guides/webhooks.md → stripe.com/old-page (404)
REDIRECT /api/charges.md → /v1/charges (301 chain)
ANCHOR /guides/errors.md#retry-logic (anchor missing)
Found 23 broken links, 8 redirect chains, 4 missing anchors.04 / Secrets & Quality
The small stuff, caught before users see it
zivodoc scans every page for leaked credentials, internal-only URLs, missing alt text, broken images, heading-level skips, multiple H1s, empty sections, TODO markers, and placeholder text. The kind of issues that quietly erode docs trust over time.
- Pattern-based secret detection (API keys, JWTs, AWS, Stripe)
- Internal-only URLs slipped into public docs
- Missing alt text and broken image references
- Heading hierarchy issues (skips, multiple H1s, empty sections)
- TODO and placeholder text left behind
- Stale dates and outdated copy markers
$ zivodoc scan
Scanning content quality...
[SECRET] /guides/setup.md:42 → AWS access key pattern
[HEADING] /api/auth.md:18 → H2 → H4 (skipped H3)
[ALT] /guides/quickstart → 3 images missing alt text
[TODO] /api/errors.md:91 → "TODO: document error codes"
[INTERNAL] /guides/deploy.md → links to staging.internal
12 hygiene issues across 7 pages.05 / PR Checks & Comments
Docs reviews, where code reviews happen
Install the zivodoc GitHub App on your repo. Every push to a PR runs a scan and posts a check status — broken docs block the merge, just like failing tests. A sticky comment on the PR lists every finding with file path, line number, and severity, so your team reviews docs the same way they review code.
- GitHub App with check status (pass / fail) on every PR
- Sticky PR comment listing all findings with file:line context
- Configurable severity threshold for blocking merges
- Updates in place on subsequent pushes — no comment spam
- Works for public and private repos
- Deep link from each finding back to the scan report
# zivodoc on PR #284
✓ No errors blocking merge.
Check: zivodoc/scan Status: success (warnings only)
[warn] /guides/auth.md:42 broken anchor → #retry-logic
[warn] /api/tokens.md:18 stale SDK version reference
[warn] /guides/setup.md:91 broken external link
3 warnings · 0 errors · view full report → app.zivodoc.com06 / CI Integration
One line in your CI, always watching
Add zivodoc to your CI pipeline with a single step. Runs on every push, every PR, or on a schedule. Results appear in your PR checks — broken docs block the merge, just like failing tests. Continuous monitoring means docs never drift again.
- GitHub Action and CLI for any CI provider
- PR check integration (pass / fail on error severity)
- Scheduled scans (daily / weekly / manual)
- Sticky PR comment with inline finding context
- Dashboard for historical scan trends
- CSV export of findings for downstream tooling
# .ci/docs-qa.yml
name: Docs QA
on: [push, pull_request]
steps:
- name: Scan docs
run: npx zivodoc scan
--docs-path ./docs
--openapi-spec ./openapi.yaml
--auto-prYour docs are your product's first impression. Make sure they work.
Connect your repo, run the first scan in under 5 minutes. Free tier — no credit card required.