Docs menu

No placeholder text in shipped pages

WARN Frame web/html-placeholder-content
On this page

Surface a WARN when shipping HTML / Svelte / Astro / Markdown content contains placeholder patterns that escape into production embarrassingly often:

Pattern Why it’s a problem
lorem ipsum... Should have been replaced with real copy; usually a never-finished draft
INSERT TEXT HERE / INSERT CONTENT HERE Template scaffold that didn’t get filled
<<PLACEHOLDER>> / {{TEMPLATE_VAR}} Template marker that wasn’t substituted
http://localhost / http://127.0.0.1 Dev URL that didn’t get swapped for prod
https://example.com Documentation example URL that didn’t get personalized
FIXME / XXX / HACK Markers explicitly tagged as “not done”
TODO: ship / TODO: prod / TODO: before launch Tasks the author flagged as required-before-shipping

Tier 3 WARN - these aren’t catastrophic but they consistently show up in production sites and damage credibility. The frame is opinionated about what counts as a “ship-blocker placeholder”; suppress per-line when you legitimately need one.

Repository docs#

README, CHANGELOG, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT and LICENSE files are skipped: a site build doesn’t serve them, so a local-preview URL in a README is not shipping content.

Fix#

Replace placeholder with real content, OR move the file outside the shipping path:

content/posts/      # ships - placeholders fire
content/_drafts/    # ignored by build - add to [scan] exclude-paths
examples/           # documentation, not shipping - suppress with appframes-ignore

For documentation that legitimately uses these patterns:

<!-- appframes:disable-next-line web/html-placeholder-content -->
Run with: `curl http://localhost:8080/`

Or for whole-file suppression (typical for examples/ directories):

<!-- appframes:disable web/html-placeholder-content -->

Suggestion: pair with build steps#

The frame catches placeholders at commit time. A complementary pre-deploy check should also grep your built dist/ / .svelte-kit/output/ to catch placeholders that survived templating. The frame doesn’t do that (it scans source, not build output) - wire it as a separate CI step.

WARN lets the push through and records the finding. Turn frames on per repo on the dashboard's Policy page - see choosing what the gate checks.

Source on GitHub Live demo How it works Questions: contact@nimblegate.com