Skip to content

feat(site): the hosted product is off; checkmydata.ai is a waitlist - #442

Merged
sshlg merged 2 commits into
mainfrom
feat/waitlist-only-site
Oct 11, 2026
Merged

sshlg merged 2 commits into
mainfrom
feat/waitlist-only-site

Conversation

@sshlg

@sshlg sshlg commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator

What

Operator decision (2026-10-11): stop every running cost except the website.

  • Infra (done out of band, recorded here): checkmydata-api at 0 dynos + maintenance; Heroku Postgres/Redis and the Supabase project deleted after pg_dump backups; auto-deploy off.
  • Site: all product CTAs → waitlist form at /#waitlist. POST /api/waitlist (Next.js route) mails each sign-up to contact@checkmydata.ai via Resend, Reply-To = visitor. No DB; an unsent sign-up is reported as a failure.
  • Product routes (/app, /login, /pricing, /dashboard/…, password/verify pages) redirect 307 → /#waitlist. Code kept for a relaunch.
  • deploy.yml: workflow_dispatch only, site only, verifies the release and that the waitlist answers 422 to an empty body.
  • Scenarios: SCN-109 rewritten, SCN-153 new, SCN-110/112 retired.

Handoff: docs/handoffs/2026-10-11-hosted-product-off.md

Checks run

  • npx tsc --noEmit, npx eslint . --max-warnings=0 — clean
  • npx vitest run — 879/879 (a first run under heavy machine load had 7 timeouts; rerun clean)
  • frontend/src/__tests__/waitlist.test.ts — 15/15
  • backend tests/unit/test_deploy_pipeline_can_fail.py, tests/unit/docs/test_ci_covers_every_pull_request.py, test_ux_scenarios.py, test_the_ux_base_checks_all_three_documents.py — 37/37; ruff clean

🤖 Generated with Claude Code

Робот and others added 2 commits October 11, 2026 22:39
Operator decision (2026-10-11) to stop the running cost. The API, worker and
databases were switched off out of band (0 dynos, add-ons and the Supabase
project deleted after pg_dump backups); this change makes the repository match.

- Every "Get Started" / "Log in" / "Try it now" CTA leads to a waitlist form at
  /#waitlist. POST /api/waitlist, served by the site's own Next.js server, mails
  one plain-text sign-up to contact@checkmydata.ai through Resend, with the
  visitor as Reply-To. No database: a sign-up that was not mailed is reported as
  a failure (502/503), never acknowledged. Honeypot, 5 per 10 min per address.
- /app, /login, /pricing, /dashboard/... and the password/verification pages
  redirect (307) to /#waitlist. The code stays for a relaunch.
- deploy.yml is workflow_dispatch only and ships the site alone; its post-deploy
  check posts an empty body to the waitlist and expects 422, so no deploy mails
  the inbox.
- Scenarios: SCN-109 rewritten, SCN-153 added, SCN-110/112 retired. The stale
  verification ceiling rises 95 -> 105: re-stamping the block aged 21 scenarios
  that can no longer be audited against a running product.
- Handoff: docs/handoffs/2026-10-11-hosted-product-off.md

Brand-Case: product infra cost cut to a single site dyno; waitlist replaces sign-up

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pped deps

npm audit fix within semver: next 15.5.27 (two SSG/ISR cache-poisoning
advisories), sharp 0.35.5 (librsvg CVE), source-map-js and others.

What remains is GHSA-vfj7-8cjw-p6xm, which flags every version of `braces`, reached
only through eslint-config-next's fast-glob and with no fixed release. The CI gate
now audits what ships (`--omit=dev`); the full tree is still audited and printed as
a warning so the dev-tooling finding stays visible.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@sshlg
sshlg merged commit c47f7c6 into main Oct 11, 2026
3 checks passed
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