Preview gateRelease prep

Harden the edges.Ship the preview cleanly.

This view keeps health, readiness, preview-only risk, and the last visible weak points in one place before you open a public preview link.

Process health

ok

Uptime 264s • deploy profile free_preview

Readiness

ready

6 non-ready checks remain

Security posture

Hardened

Security headers and same-origin state-change protection are enabled.

Ops load

0

Cron runs • 0 failed jobs • 0 webhook failures

What is still blocking a confident preview link.

databasedisabled
Database is not enabled for this environment.
redisready
Upstash Redis REST responded to PING.
authProvidersready
Google is configured.
AUTH_SECRETready
AUTH_SECRET is configured.
CRON_SECRETdisabled
CRON_SECRET is not configured.
STRIPE_SECRET_KEYdisabled
STRIPE_SECRET_KEY is not configured.
STRIPE_WEBHOOK_SECRETdisabled
STRIPE_WEBHOOK_SECRET is not configured.
RESEND_API_KEYdisabled
RESEND_API_KEY is not configured.
STEAM_WEB_API_KEYdisabled
STEAM_WEB_API_KEY is not configured.

Public-link basics before you open the door.

App URLreadyPublic app URL is configured.
Auth providersreadyGoogle can complete sign-in in preview.
Stripe posturedisabledBilling stays in safe fallback mode.
Steam syncdisabledOnly public profile signals are available.
Community recondisabledShared community cache has not been warmed yet.
Stale queueclear0 stale items
AI blockedclean0 requests blocked
BYOK errorsnone0 failures

Preview validation flow

1 · Check /api/health and /api/ready2 · Search for a Steam game and open detail3 · Confirm watch rule save and dashboard reflection4 · Confirm community recon renders with freshness badges5 · Validate plans and settings without broken states

What to finish before the first public preview.

Run npm run smoke:preview against the preview URLVerify Google sign-in and one Stripe checkout in test modeWarm at least one community recon cache entry before sharingReview stale queue and clear obvious gaps