Skip to content

fix(site): launch punch list (dead links, trust sub-processors, self-hosted icons) - #26

Merged
rclanan merged 1 commit into
mainfrom
fix/launch-punch-list
Sep 28, 2026
Merged

rclanan merged 1 commit into
mainfrom
fix/launch-punch-list

Conversation

@rclanan

@rclanan rclanan commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Pre-launch polish for mockforge.dev.

Links

  • Fixed 404s: docs.mockforge.dev/plugins -> docs.mockforge.dev/user-guide/plugins.html; docs.mockforge.dev/CONFORMANCE_TESTING.html -> github.com/SaaSy-Solutions/mockforge/blob/main/docs/CONFORMANCE_TESTING.md (the guide is not in the mdBook); github.com/charmbracelet/kafka -> Kafka Streams testing docs.
  • New scripts/check-links.mjs (npm run build:site && npm run check:links) scans the built site; CI runs --internal-only.
  • Redirect pages for /notes, /blog, /docs, /security, /terms, /dpa. mockforge.dev/terms is linked from every registry transactional email and was a 404.

Trust / accuracy

  • Sub-processors rewritten for the Ashburn cutover (evidence: saas-platform infrastructure/ashburn/{README,RUNBOOK,CUTOVER,Caddyfile}): Hetzner (API, app, Postgres), Fly.io (hosted mocks only; *.mocks.mockforge.dev stays on Fly), Cloudflare (edge, tunnel, R2), Stripe, Sentry, Brevo.
  • "Encrypted at rest" narrowed to R2 object storage and backups: no evidence of disk encryption on the self-hosted Postgres host.
  • Dated update callout on the infrastructure note.
  • Privacy page no longer claims GA4 (it never loaded).
  • llms.txt: api.mockforge.dev is the Cloud API, not a demo.

UX

  • Enterprise "Contact sales" -> mailto:sales@mockforge.dev; JSON-LD contactPoints for sales, security, and technical support.
  • Removed the dead GA4 scripts and the unused GA_MEASUREMENT_ID env.
  • Phosphor icons are self-hosted (public/vendor/phosphor, woff2), so the site makes no unpkg requests.
  • Copy-install button shows "Copied" text plus an aria-live status, with a fallback copy path.
  • Mobile menu has aria-expanded. Checked at 375px.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…hosted icons)

- Fix dead docs links (plugins, conformance guide, Kafka Streams testing) and
  add scripts/check-links.mjs (`npm run check:links`); CI runs it internal-only.
- Trust page: sub-processors reflect the Ashburn cutover (Hetzner host for
  API/app/Postgres, Fly.io for hosted mocks only, Cloudflare incl. R2, Stripe,
  Sentry, Brevo); at-rest encryption claim narrowed to what is evidenced.
- Dated update callout on the SaaS infrastructure note.
- Contact sales -> mailto:sales@mockforge.dev; JSON-LD contactPoints split into
  sales / security / technical support.
- Strip dead GA4 code (never loaded; no measurement ID) and fix the privacy
  page, which claimed GA4 was in use.
- Self-host Phosphor icons (public/vendor/phosphor, woff2) instead of unpkg.
- Copy-install button: visible "Copied" text + aria-live status + fallback.
- Mobile menu: aria-expanded / aria-controls.
- Redirect pages for /notes, /blog, /docs, /security, /terms, /dpa
  (/terms is linked from every transactional email and 404'd).
- llms.txt: api.mockforge.dev is the Cloud API, not a demo instance.
@rclanan
rclanan merged commit 4711d89 into main Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant