Recipient picker — gated on payment, renders 12 options with real Google Places vendor photos as hero when available, atmospheric Flux fallback otherwise. WCAG 2.1 AA clean.
Post-pick confirmation email — when recipient picks, sender automatically receives a warm email confirming the choice via Resend.
Live across giftcue.app, giftcue.ai, giftcue.org, getgiftcue.com.
Payment · Stripe (test mode)
Separate Stripe account "GiftCue" (acct_1TW4VRFg5MXTpqCW) inside the True Grit Toolkits LLC organization, distinct from BOSSTORQUE consulting.
Webhook we_1TW56cFg5MXTpqCWdhavGPNw subscribed to checkout.session.completed / charge.refunded / charge.dispute.created with HMAC signature verification.
Statement descriptor: GIFTCUE.
Email delivery · Resend
Sending domain mail.giftcue.app verified (DKIM + SPF + MX active in Cloudflare DNS). Defensive DMARC at giftcue.app apex.
From address: gifts@mail.giftcue.app. CAN-SPAM-compliant footer with True Grit Toolkits LLC mailing address.
Bounce/complaint webhook live at /api/resend/webhook — auto-suppresses bouncing addresses to protect sender reputation.
Local discovery · Google Places API (New)
Post-AI intent detection — Haiku emits local_intent per option, hydrator fetches matching businesses via Text Search New with 15km radius and category-aligned filtering.
City geocoded once per unique city, cached 365 days. Place data cached 7 days. Photos cached 30 days.
Real vendor photos used as hero when match exists; Flux atmospheric scenes only as fallback. Category-mismatch suppression so a portrait artist option never matches to a random photographer.
At projected MVP volume (500 sessions/month): well under Google's per-SKU free tier.
SEO content
12 cornerstone blog posts live at getgiftcue.com/blog covering primary purchase-intent search queries.
Brand voice pass complete — average voice score 8.7 → 9.95 across 12 posts. 13 em-dashes stripped, duplicated template line varied across 7 posts.
Staged revisions in /tmp/giftcue-deploy/landing-worker.new.js — awaiting one approval ping to deploy.
Infrastructure stack
Hugo Mercer CEO operating model
giftcue-relay — bidirectional Slack relay for #giftcue (channel C0B2NSV9M3R). Slack Events API → Anthropic Claude Sonnet 4 → bot-posted reply. KV-backed live context push so Hugo's awareness stays current.
bt-notify — unified outbound Slack push relay. Single endpoint POST /send, four registered channels (giftcue / sperry / bt-ops / personal). Replaces Dispatch (broken) and silent self-posts via Slack MCP.
25 scheduled tasks migrated to bt-notify — every cron now pushes to the right channel and Jason's phone actually buzzes.
Legal entity
Oregon Assumed Business Name GIFTCUE registered as ABN #257359597 under True Grit Toolkits LLC (parent #243310695).
Principal address: 1275 Monroe St, Eugene OR 97402.
Spin to GiftCue Inc. (Delaware) when $10K MRR OR outside capital OR pre-exit, whichever comes first.
What's queued and what's blocked
Action needed from JasonRegister Resend webhook URL. Resend dashboard → Webhooks → Add endpoint https://giftcue.app/api/resend/webhook → subscribe to bounce/complaint/delivered/opened/clicked → grab signing secret → I set RESEND_WEBHOOK_SECRET on the worker. Until done, the route soft-fails (returns 200, doesn't reject Resend retries) but signature verification is bypassed.
Action needed from JasonApprove brand voice pass deploy. Read brand-voice-pass-2026-05-11.html in this folder. If you're good with the edits, say "deploy it" — I'll run the wrangler command and the cornerstones go live tightened.
Multi-week clockSMS via Twilio. Designed but deferred pending TCPA counsel review per compliance-check 2026-05-11. Carrier registration takes 10–15 days; we don't submit until consent UX + Privacy Policy updates are signed off by an attorney. Engage Pollack & Pollack, Klein Moynihan Turco, or your OR business attorney for a $2–5K consent UX + PP + TOS review.
Awaiting future triggerStripe live mode swap. Currently test mode only. To take real money: complete Stripe account activation (any remaining KYB), regenerate live keys, create live webhook endpoint, swap two worker secrets. Pull this trigger when you're ready to flip publicly visible.
Awaiting sellergiftcue.com acquisition. $250 anonymous offer extended via the registrar's broker (capped at $350 walk-away). Seller has not responded. Daily pulse-check task monitors the domain status.
Today's session log
Tasks 14–17 — built giftcue-relay (V1/V2/V3) with KV-backed live context for Hugo Mercer's Slack workflow.
Task 18 — Stripe test-mode routes (checkout/create, success, cancel, webhook with HMAC sig verification).
Task 19 — Google Places API (New) hydration with category-aligned matching.
Tonight: ten more end-to-end test runs of the sender flow. Different cities, different recipient types, different occasions. We should see real vendor photos render correctly in 60%+ of options once Places matches. Flag any AI hallucination that survives the new grounding rules.
This week: register the Resend webhook + grab signing secret (10 min), approve the brand voice deploy (one review, one ping), email a TCPA-experienced attorney for an SMS launch review quote.
Next sprint: Stripe live mode swap when you're ready to take real money; build the first paid sender (you to Mom, real $7 transaction) as the live-mode smoke test.