Hot Cues · deployment status

Running, with warnings

Build 2893963 · production · checked Thu, 29 Oct 2026 04:17:11 GMT

OK

Database connection

Connected as hotcues_app.

OK

Database migrations

49 applied, latest: 20260930200000_contract_policy_categories.

OK

Login & invite database functions

All 19 present.

OK

Row-level security

Enforced on all tenant tables.

OK

Database permissions

Working.

OK

Tenant scoping

Working.

OK

Notification queue

Empty.

OK

Login codes

Sent by resend.

OK

Other email (invites, notices)

Provider: resend, sending as Hot Cues <hello@hotcues.app>.

Check

Email deliverability (SPF/DMARC)

SPF: not found on hotcues.app. DMARC: not found on _dmarc.hotcues.app. (DNS lookup: queryTxt ENODATA hotcues.app)

Fix: Add the SPF and DMARC TXT records your provider's domain-verification page gives you (Resend/Postmark/SendGrid each show these, along with DKIM, under "Verify domain" or similar). Without them, mail from this domain is more likely to land in spam or get rejected outright.

Check

Login codes on screen

On — codes appear on the sign-in screen for the 1 admin address only.

Fix: Fine while you set up. Remove HOTCUES_SHOW_LOGIN_CODES once email delivery works.

OK

Platform admin

1 admin address configured.

OK

Session secret

Set.

OK

Public address

Links are built against https://www.hotcues.app.

OK

Signup

Invite-only — new businesses need an invite link (or a configured admin email).

OK

Sign-in

Password only. Set each person's password from People (or your own in Settings) — nobody signs in with an emailed code until this changes.

Check

Break-glass login

DEV_USERNAME + DEV_PASSWORD are set — that exact email/password signs in regardless of the database, mail, or Supabase.

Fix: Fine while you're getting set up. Remove both variables once normal sign-in is solid, so this isn't a standing credential.

OK

Background sending (cron)

CRON_SECRET is set — /api/cron/outbox drains the queue every 5 minutes.

Off

Inbound email (replies land on their event)

Not configured — clients can receive your email but their replies never come back into the app.

Fix: Set EMAIL_INBOUND_SIGNING_SECRET (any strong value) and EMAIL_INBOUND_ADDRESS (the mailbox your provider's inbound parse delivers to), then point the provider's inbound webhook at /api/webhooks/email?secret=<value>.

OK

Support inbox forwarding (Resend)

Mail to support@hotcues.app forwards to hello@giftedgeeksentertainment.com.

Off

Card payments & staff payouts (Stripe)

Not configured — invoices work, but card capture and automated staff payouts stay off (manual/P2P recording still works).

Fix: Set STRIPE_SECRET_KEY + STRIPE_WEBHOOK_SECRET (and STRIPE_CONNECT_CLIENT_ID for staff payouts), then redeploy.

OK

Photo & logo uploads

Configured (s3).

Check

Gemini models

"gemini-3.1-pro", "gemini-3.1-flash" isn't available to this key, so Harmony chat uses gemini-3.8-flash; Contract drafting uses gemini-3.8-flash; Agent Cue uses gemini-3.8-flash; Harmony file reading uses gemini-3.8-flash; Suggestion extraction uses gemini-3.8-flash. Models on this key: gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-flash-preview, gemini-3.1-flash-lite, gemini-3.1-flash-lite-preview, gemini-3.1-pro-preview, gemini-3.1-pro-preview-customtools, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash.

Fix: On the free tier Google doesn't offer the Pro models. Turn on billing for the key's project in Google AI Studio, or pin a listed model with GEMINI_HARMONY_MODEL / GEMINI_CONTRACT_MODEL / GEMINI_INTAKE_MODEL / GEMINI_IMPORT_MODEL / GEMINI_EXTRACTION_MODEL.

OK

Google connect (calendar push + Gmail sending)

Configured.

Off

QuickBooks sync

Not configured — mirroring invoices and payments into QuickBooks stays off.

Fix: Set QBO_CLIENT_ID + QBO_CLIENT_SECRET (+ QBO_ENVIRONMENT), then redeploy. See docs/INTEGRATIONS.md for the wiring status.

Off

Hot Cues subscriptions (Stripe billing)

Not configured — self-serve Free→Pro upgrades on the Settings page, with the plan synced from Stripe subscriptions (point a Stripe webhook at /api/webhooks/stripe-billing) stays off.

Fix: Set STRIPE_SECRET_KEY + HOTCUES_PRICE_YEARLY (and/or HOTCUES_PRICE_MONTHLY) + STRIPE_BILLING_WEBHOOK_SECRET, then redeploy. See docs/INTEGRATIONS.md for the wiring status.

Off

Apple Music song search

Not configured — catalog search against Apple Music — the primary search backbone (Spotify's API is closed to new apps, so Apple is the one that scales to your tenants) stays off.

Fix: Set APPLE_MUSIC_TEAM_ID + APPLE_MUSIC_KEY_ID + APPLE_MUSIC_PRIVATE_KEY (MusicKit key from the $99/yr Apple Developer Program), then redeploy. See docs/INTEGRATIONS.md for the wiring status.

Off

Spotify song search

Not configured — matching client song requests against the real streaming catalog stays off.

Fix: Set SPOTIFY_CLIENT_ID + SPOTIFY_CLIENT_SECRET, then redeploy. See docs/INTEGRATIONS.md for the wiring status.

OK

Call transcription

Configured.

OK

AI suggestion extraction

Configured.

Off

In-app video calls

Not configured — real video rooms and call recording (Call transcription, above, needs a real recording to work with) stays off.

Fix: Set LIVEKIT_URL + LIVEKIT_API_KEY + LIVEKIT_API_SECRET, then redeploy. See docs/INTEGRATIONS.md for the wiring status.

Off

Push notifications

Not configured — phone push delivery for the notification queue stays off.

Fix: Set EXPO_ACCESS_TOKEN, then redeploy. See docs/INTEGRATIONS.md for the wiring status.

Machine-readable version at /api/health. This page shows configuration state only — never data, secrets, or connection strings.