Repository navigation
feat(site): the hosted product is off; checkmydata.ai is a waitlist - #442
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Operator decision (2026-10-11): stop every running cost except the website.
checkmydata-apiat 0 dynos + maintenance; Heroku Postgres/Redis and the Supabase project deleted afterpg_dumpbackups; auto-deploy off./#waitlist.POST /api/waitlist(Next.js route) mails each sign-up tocontact@checkmydata.aivia Resend, Reply-To = visitor. No DB; an unsent sign-up is reported as a failure./app,/login,/pricing,/dashboard/…, password/verify pages) redirect 307 →/#waitlist. Code kept for a relaunch.deploy.yml:workflow_dispatchonly, site only, verifies the release and that the waitlist answers 422 to an empty body.Handoff:
docs/handoffs/2026-10-11-hosted-product-off.mdChecks run
npx tsc --noEmit,npx eslint . --max-warnings=0— cleannpx vitest run— 879/879 (a first run under heavy machine load had 7 timeouts; rerun clean)frontend/src/__tests__/waitlist.test.ts— 15/15tests/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