Skip to content
Open source

59 security tools for the web and the build.

CI sentinels, privacy wardens, SEO beacons and malware-research utilities — plus Next.js flagships next-tongue and next-herald, dogfooded on this site.

59packages
17,226downloads*
69stars

*GitHub release assets when present, else clones (last 14 days) · sum of all 59 repos · snapshot · 2026-10-17

Flagships

Flagship · Type-safe i18n

next-tongue

Existing i18n libraries predate Cache Components and proxy.ts.

Compiler-first, type-safe i18n for the Next.js 16 App Router, built for Cache Components (pre-alpha)

$ npm install next-tongue   # not yet published
$ npx tongue init
★ 1Pre-alpha · not yet on npmMIT

Used on this site: i18n readiness (en-GB at launch)

Flagship · Metadata · JSON-LD · SEO

next-herald

App Router SEO packages date from the Pages Router; native Next has no sitemap index, XSS-safe JSON-LD or build check.

Typed metadata, XSS-safe JSON-LD, sitemaps with hreflang, OG templates and an SEO CI check for Next.js 16 App Router

$ npm install next-herald   # not yet published
$ npx herald init
★ 1Pre-alpha · not yet on npmMIT

Used on this site: metadata, JSON-LD @graph, sitemap, OG

All packages

Sentinel · 12

cookie-sentinel★ 1

Audit Set-Cookie headers: missing Secure/HttpOnly/SameSite, __Host-/__Secure- prefix violations, broad Domain, long expiry, cookies over HTTP, JWTs and emails in values,

Sentinel↓ 325 clones
csp-forge★ 5

Scan a built static site (dist/, build/, out/) or live URL and generate a tight Content-Security-Policy with sha256 hashes for inline code

Sentinel↓ 427 clones
dns-sentinel★ 1

DNS and email security auditor: SPF (10-lookup limit, +all, ptr), DMARC, DKIM key strength, MX/null MX, MTA-STS, TLS-RPT, CAA, DNSSEC via DoH, dangling CNAME and subdomai

Sentinel↓ 348 clones
dockerfile-sentinel★ 1

Dockerfile and Docker Compose security linter: root users, unpinned or EOL base images, hardcoded secrets, curl | sh, disabled TLS/GPG checks, sensitive COPY, missing .do

Sentinel↓ 300 clones
dotenv-sentinel★ 1

Validate .env files against .env.example or a JSON schema (missing, empty, extra and mistyped variables), flag weak and default secrets, real secrets in example files, an

Sentinel↓ 317 clones
header-sentinel★ 5

CI-friendly CLI and API that fails builds when deployed URLs are missing or misconfigure HTTP security headers (HSTS, CSP, COOP, cookies...) with specific fixes

Sentinel↓ 482 clones
redirect-sentinel★ 1

Find open redirects and mixed content in a built site or a live crawl: http:// scripts, styles, frames and images on HTTPS pages, insecure forms, client-side redirects fe

Sentinel↓ 264 clones
securitytxt-sentinel★ 1

Validate security.txt (RFC 9116) and robots.txt for your domains or local files: missing or expired Expires, Contact and Canonical problems, wrong location, content type,

Sentinel↓ 357 clones
sri-sentinel★ 1

Subresource Integrity (SRI) generator and checker: hashes <script> and <link> resources in built HTML (sha256/384/512, local and CDN), writes integrity + crossorigin, fai

Sentinel↓ 364 clones
static-link-sentinel★ 1

Crawl a static build (dist/, build/, out/, public/, _site/) before deploy and fail CI on broken internal links, missing assets, case-mismatched paths, missing #anchors an

Sentinel↓ 366 clones
tls-sentinel★ 1

TLS endpoint checker: certificate expiry, hostname mismatch, untrusted or incomplete chains, self-signed certs, weak keys and signatures, TLS 1.0/1.1 and weak ciphers, mi

Sentinel↓ 360 clones
workflow-sentinel★ 1

Harden GitHub Actions: flags unpinned actions, broad or missing permissions, pull_request_target pwn requests, script injection, leaked secrets, persisted credentials, se

Sentinel↓ 305 clones

Warden · 8

a11y-warden★ 1

WCAG 2.2 accessibility audit of static HTML for CI: alt text, form labels, button/link names, inline colour contrast, lang, title, landmarks, ARIA roles/references, aria-

Warden↓ 287 clones
consent-warden★ 1

Check cookie-banner consent behaviour in your built site: trackers and embeds that load before opt-in, missing banner, Consent Mode defaults, missing or less prominent Re

Warden↓ 216 clones
dsar-warden★ 1

Assemble Data Subject Access Request (DSAR / GDPR Article 15) exports from CSV, JSON and JSONL sources into one structured, checksummed bundle, and check it: subject matc

Warden↓ 248 clones
gpc-warden★ 1

Check your built site honours Global Privacy Control: code reading navigator.globalPrivacyControl / Sec-GPC, sale/share advertising trackers that load unconditionally, /

Warden↓ 318 clones
pii-log-warden★ 1

Find and redact PII in log files: emails, phone numbers, public IPs, Luhn-valid card numbers, US SSNs, UK National Insurance numbers, checksum-valid IBANs, passwords/secr

Warden↓ 296 clones
policy-drift-warden★ 1

Compare the trackers and third parties your built site actually loads with what its privacy policy declares: undisclosed vendors and categories, undisclosed sale/sharing

Warden↓ 288 clones
retention-warden★ 1

Lint a declarative data-retention policy (YAML or JSON): missing or invalid periods, indefinite retention, conflicting rules, data categories held in systems with no rule

Warden↓ 170 clones
tracker-warden★ 1

Inventory the third-party trackers, pixels and SDKs on your built static site: 45 known vendors with company and category (advertising, analytics, session replay, social,

Warden↓ 237 clones

Guard/Tripwire · 6

Beacon · 9

answer-beacon★ 1

Check your built static site is ready for answer engines (AEO): question headings with concise direct answers, FAQPage/QAPage/HowTo schema, llms.txt, AI crawler rules in

Beacon↓ 277 clones
canonical-beacon★ 1

Check canonical tags and hreflang clusters in your built static site: missing, multiple, relative or in-body canonicals, targets that are missing, noindex or chained, and

Beacon↓ 300 clones
duplicate-beacon★ 1

Detect duplicate and near-duplicate content across your built static site: identical or near-identical titles, meta descriptions and page bodies (shingles + MinHash), sit

Beacon↓ 229 clones
heading-beacon★ 1

Audit heading structure in your built static site: exactly one visible H1, no skipped levels, no empty, generic, duplicate, image-only or overlong headings, H1 vs title a

Beacon↓ 289 clones
index-beacon★ 1

Check indexability of your built static site: meta robots and X-Robots-Tag (noindex, nofollow, none, unavailable_after, nosnippet) against your intended indexing rules, s

Beacon↓ 265 clones
meta-beacon★ 1

Audit titles, meta descriptions, Open Graph and Twitter/X card tags across a built static site: presence, duplicates in the head, length, absolute URLs and real og:image

Beacon↓ 260 clones
orphan-beacon★ 1

Find orphan pages in your built static site and measure click depth from the homepage: pages with no internal inbound links, unreachable clusters, nofollow-only or noinde

Beacon↓ 273 clones
schema-beacon★ 1

Validate JSON-LD and microdata in a built static site against schema.org types and Google rich-result requirements: parse errors, unknown types, missing required/recommen

Beacon↓ 210 clones
sitemap-beacon★ 1

Audit XML sitemaps against your built static site: size limits, invalid or other-host URLs, URLs that are missing, noindex or non-canonical, invalid/future/stale/uniform

Beacon↓ 294 clones

Pulse · 8

bundle-pulse★ 1

CI gate for JS/CSS bundle size: per-entry budgets on raw, gzip and brotli sizes, total JS/CSS budgets, growth vs a base-branch snapshot with content-hash-insensitive name

Pulse↓ 262 clones
cache-pulse★ 1

Check static hosting caching for performance: long max-age + immutable on fingerprinted assets, revalidation on HTML, no long cache on unhashed files, Vary and Set-Cookie

Pulse↓ 197 clones
font-pulse★ 1

Audit web font loading in a built static site: font-display, preload with crossorigin, unused preloads, WOFF2, heavy or unsubset fonts, unicode-range, unused faces and we

Pulse↓ 269 clones
image-pulse★ 1

Find oversized and unoptimised images in a built static site: heavy files, images far wider than displayed, JPEG/PNG without AVIF/WebP, missing width/height, srcset and s

Pulse↓ 227 clones
lazy-pulse★ 1

Lazy-loading audit for static sites: below-the-fold images and iframes missing loading=lazy, and LCP candidates (hero images, first images) wrongly lazy-loaded or deprior

Pulse↓ 234 clones
render-pulse★ 1

Find render-blocking resources in a built static site: head scripts without defer/async, heavy blocking CSS, @import chains, third-party blocking resources without precon

Pulse↓ 299 clones
thirdparty-pulse★ 1

Third-party script weight and load-cost report for static sites: estimated bytes, requests and main-thread time per page and per vendor, with budgets, plus sync-script, d

Pulse↓ 212 clones
vitals-pulse★ 1

Fail CI on Core Web Vitals: reads Lighthouse, Lighthouse CI, PageSpeed Insights and web-vitals reports (or runs Lighthouse), takes the median per URL and gates LCP, CLS,

Pulse↓ 227 clones

Gauge · 8

commit-gauge★ 1

Lightweight Conventional Commits linter for git hooks and CI: lints a message, a file, stdin or a commit range, explains every problem and suggests a corrected header

Gauge↓ 296 clones
dead-deps-gauge★ 1

Find dependencies declared in package.json but never imported, and imports missing from package.json (or only in devDependencies)

Gauge↓ 333 clones
engines-gauge★ 1

Make engines.node, your CI matrix, .nvmrc/.node-version/.tool-versions/Volta/Dockerfile and your dependencies' engine requirements agree: untested minimum versions, CI ve

Gauge↓ 269 clones
monorepo-gauge★ 1

Hygiene checks for npm/yarn/pnpm workspaces: circular internal dependencies, internal ranges that no longer match, shared dependency drift, duplicate names, public packag

Gauge↓ 262 clones
pkg-field-gauge★ 1

Validate package.json before you publish: exports/main/types/bin consistency and condition order, targets that do not exist or are not in "files", ESM/CJS mismatches, nam

Gauge↓ 290 clones
publish-gauge★ 1

Check what npm publish will actually ship before you publish: packs the tarball and verifies entry points, exports and bin targets exist and load, types resolve, no secre

Gauge↓ 295 clones
readme-gauge★ 1

Lint READMEs for missing sections, broken and stale badges, stale install commands, missing usage examples, broken relative links and anchors, placeholders and license mi

Gauge↓ 327 clones
semver-gauge★ 1

CI gate that checks your version bump matches the changes since the last release (Conventional Commits: breaking/feat/fix) and that CHANGELOG.md has a real entry for the

Gauge↓ 242 clones

Next.js · 2

next-tongue · next-herald, shown above as flagships

Threat-intel · 6