Build-in-public
Every build at AGV.VIZION, AGV.SYSTEMS, and AGV.AI. Auto-updated from the same Build Progress tracker I use internally. If you ever wondered whether a one-person shop can out-ship a 50-person SaaS company, the answer is here.
Week of April 20, 2026 · 100 shipped
REC4-K Stripe customer auto-archive
2026-04-22Monthly 09:00 UTC. Archives 18mo-idle delivered clients. Cap 200/run. Build Log IakfGODX. Commit b53dc52.
REC6-J Churn-risk deterioration alerter
2026-04-22Monday 16:00 UTC. WoW delta ≥20pts flags deteriorating. Slacks top-5. Build Log aehKH6K4. Hook Q4B9V25l. Commit b53dc52.
REC7-F /send-live-update skill
2026-04-22Wedding-day instant bell skill with 8 copy templates. Build Log nE9o18fR. Hook CGGXnp0v.
REC6-H Emitters catalog admin page
2026-04-22SOURCES registry + orphan detection. Build Log m47imIkZ. Commit 490c830.
REC5-H Portal bottom-tab unread anchor
2026-04-22notify_tab_segment column + window-event broadcast + bottom-tabs dot render. Build Log IKGoYZaW. Commit 490c830.
REC6-D Wedding-countdown milestones cron
2026-04-22Daily 15:00 UTC M28/M7/M1 milestone bells. Build Log j40JRfaC. Hook sP4brdMD. Commit b53dc52.
REC4-I /admin/email-templates-preview
2026-04-2213 cron email templates rendered with sample data in sandboxed iframes. Click-through to full-width. Commit 50473b4. Build Log cNTtsXgn.
REC7-K Churn-risk accuracy scorecard
2026-04-22v_churn_risk_accuracy view + gold-accent strip at top of /admin/churn-risk. Operator-trust moat. Commit 50473b4. Build Log gNohJPsa.
REC7-C /admin/churn-risk/[clientId] detail
2026-04-22Full per-bride churn story: score/bucket/delta hero, factor bars, 8-week trend, bell history, failures, opt-outs, quick-action links. Pure read. Commit 3cd88ed. Build Log 5Tm6mM71.
REC5-E /admin/portal-activity operator view
2026-04-22v_portal_client_engagement view + 4-bucket strip + sorted oldest-first. Commit 50473b4. Build Log YzxXy91w.
REC3-G /portal/[clientId]/wrapped annual retro
2026-04-22Bride-facing year-in-review. Timing-safe portal_token auth. Share-friendly layout for IG stories. Commit 3cd88ed. Build Log dLiNyFjO.
REC6-K Portal notification preferences
2026-04-22Opt-out model with default-all-on. New table + API + portal UI + notifyClient() consultation. Build Log kaMFjrkD. Commit 3785a81.
REC7-A Referral-earned bell emitter
2026-04-22convertReferral() now pings the referring bride's bell. Build Log X6eKj2bM. Commit 25027e0.
REC6-A Voice-memo-ready bell emitter
2026-04-22Finally unblocked via REC5-D waiver. Emitter live. 5 legit Gemini findings on pre-existing code addressed alongside. Build Log 35aFNfq7. Commit da6a099.
REC7-H NFC onboarding complete bell emitter
2026-04-22onboarding-video-complete probes published vs completed counts. 4 Gemini findings addressed. Build Log JBk1ew3y. Commit 34ae9ae.
REC6-F Churn-recovery auto-sequence
2026-04-223-step hands-free save sequence with operator-pause override. Fail-closed on history lookup errors. Build Log 1tnQwYT3. Commit db14742.
REC5-D Adversarial-review exception ledger + quota-aware soft-fail
2026-04-22Pre-commit hook now handles Gemini quota outages + supports WAIVER_HASH-pinned false-positive waivers. Build Log p1iykMAa.
REC7-G Padrino milestone bells (50/75)
2026-04-22Before/after pct compare ensures fire-once-per-milestone. Build Log b66EZn3S. Commit 34ae9ae.
REC8-D Referral credit UI + apply workflow
2026-04-22Portal form + API + admin queue. Build Log BZjUwXIY. Commit a44e793.
REC7-D Notifications smart-archive
2026-04-22UI filter hides read > 7d. Build Log T59C5SN9. Commit d04af5e.
REC8-H Post-onboarding milestone bells
2026-04-22Day 3/7/30 anchored to onboarding_complete. Build Log ZqAkC2oW. Commit 4aeb0b3.
REC5-B Weekly bride digest email
2026-04-22Daily cron. Compliance-gated, idempotent. Build Log Lmlqwa8T. Commit d4ddaf7.
REC7-B Post-wedding retention sequence
2026-04-223 bells at T+0/3/10 post gallery-delivery. Build Log ZhrDfTXs. Commit d4ddaf7.
REC7-E Emitter heartbeat telemetry
2026-04-22Weekly probe + Slack alert on silent emitters. Build Log 0HfkPIuV. Commit d04af5e.
REC8-J NFC tap analytics
2026-04-22/admin/nfc-analytics with heatmap. Build Log Oja8rZ66. Commit 6c36378.
REC8-C Operator email drafts composer
2026-04-22Templates + autosave + HTML sandbox preview. Build Log iJRwREHE. Commit db154b8.
REC8-I Monthly business review P&L
2026-04-22CEO single-page with MoM deltas. Build Log TiX5bSwY. Commit 6c36378.
REC9-A Wedding anniversary lifecycle emitter
2026-04-221/2/5/10yr bells. Multi-decade retention. Build Log N0uUX6gj. Commit 8c1c1be. SKIP_ADVERSARIAL used (Gemini 21h quota) — manual review tomorrow.
REC8-E Multi-business tenant overview
2026-04-22/admin/businesses tenant list. ?business_id filter on other surfaces deferred. Build Log wrKSvRnm. Commit 32d5279.
REC9-C Gallery engagement dashboard
2026-04-22Per-bride rollup. Build Log vC4iKBdr. Commit da1baca.
REC9-L Competitor-watch pitch workflow
2026-04-22Handle health + venues discovered + pitch candidates. Claude-API classification deferred. Build Log hn1OJRNp. Commit 38d9f9b.
Cross-Business Customer Lookup — customer_unified view + /admin/customer-lookup
2026-04-22One URL resolves any customer across AGV.VIZION + AGV.QUINCES + AGV.BOOTHS + AGV.MEDIA with total LTV + cross-sell hints.
Wedding Day Live Status Portal (public family link + Alex mobile control + hearts)
2026-04-22Bride gets shareable link, family watches live. Alex updates status from phone. Hearts register + buzz Alex. wedding_live_status + wedding_heart_reactions tables LIVE.
Canonical Sales Call Kit (6-pillar flow + objection script + HTML collections guide spec)
2026-04-22Replaces 12 dump cards. 6-pillar call flow, anchor-highest framework, partner-gate on lead form, slide copy for team-joining + same-day incentive.
Vendor Rolodex System — Airtable table + /vendor-outreach skill + FB group scraper
2026-04-22Replaces 12 dump cards. 23-field Airtable table LIVE with 8 seed rows. /vendor-outreach skill registered. Pending: Alex replaces [TEMPLATE] rows with real vendors.
DUMP Board Triage System — 591 cards → 256 BUILT + 190 NOISE + 145 IMPACTFUL bundles
2026-04-2213 bundles created on Trello QUEUE list. /dump-triage skill + weekly cron live. Master plan card https://trello.com/c/AtODkPhl
NPS Auto-Referral Loop (7d post-gallery, 3-tier auto-fire actions)
2026-04-22nps_responses + nps_actions tables + trigger. 9+ → Google Review + Referral + Testimonial. 7-8 → follow-up call task. 0-6 → recovery + Alex DM. Vercel cron 17:00 UTC daily.
Vendor Performance Scoring Cron + Vendor Kickback Report
2026-04-22Daily sync from Airtable Vendor Rolodex to Supabase cache + auto-demote alerts. Monthly Resend report to Alex with top ROI + one-sided partnerships.
Bride Anxiety Dashboard (portal page + milestones lib + 20 seeded quotes)
2026-04-2219 milestone library + planning progress % + next 3 actions + stage-matched bride quotes. 20 anonymized quotes seeded across 5 stages.
Bride Lead Magnet Kit — 5 PDFs + landing page + 7-email nurture sequence
2026-04-22Replaces 17 dump cards. 5 PDFs rendered via headless Chromium (Cormorant + DM Sans). /wedding-resources landing + /tools/timeline-builder + /tools/start-time + /api/lead-magnet-signup. Nurture sequence in agvvizion-saas/src/lib/emails/bride-lead-nurture.ts.
AGV Bench Directory — public /team page + agv_bench_directory table + Alex seeded
2026-04-22Public bench directory doubles as recruiting pitch. Alex seeded as first entry. Pending: Alex adds more team members when ready.
Pipeline Bot Post-Call Recap v2 (aligned to Sales Call Kit) — LIVE Railway
2026-04-22Deployed to Railway robust-fascination service. SMS + email recap fires 15 min post-call. Wired to Sendblue + Resend.
Lead Magnet Signup API + Bride Lead Nurture 7-email sequence (21 days)
2026-04-22Landing form capture → Supabase leads upsert → 7-email drip (Day 0/2/5/9/13/17/21) → Alex voice humanized. LIVE.
Competitor Dynamic Pricing Monitor (monthly cron)
2026-04-22Monthly scrape of 30 competitor CA websites for published pricing. Diffs vs prior month. Telegram alert if market median drifts >15%.
Weekly DUMP Triage Cron (productizes triage session)
2026-04-22Monday 17:00 UTC cron scans new DUMP cards, classifies via keyword rules, routes to NOISE/QUEUE with bundle tags. Telegram summary.
Email compliance wired into remaining 5 crons
2026-04-21sunday-sneakpeek, voice-memo-reveal, padrino-reminders, fap-invite-drip, fap-anniversary now all use ensureComplianceGate() + appendFooterToHtml(). All 10 email-sending crons are now compliance-gated. Includes migration-less schema fixes: MemoRow adds business_id, archive_invites select adds busines
/admin/unsubscribes compliance audit view
2026-04-21Sorts opted-out vs still-subscribed. Per-row channel, scope, source (which cron provisioned the token). CAN-SPAM + GDPR audit trail for regulators. Linked from /admin/all Ops section.
REC-K Gallery paywall teaser (migration 078 + /teaser/[slug])
2026-04-21Public blurred-preview page. Reads up to 5 gallery_photos.is_sneak_peek=true per client. CSS blur + CTA. unlock_mode enum (balance_paid / shared_three / balance_or_share / time_release). gallery_teasers table with partial UNIQUE(client_id) WHERE active=true — one live teaser per client. Atomic view-
Stripe receipt email cron (migration 079)
2026-04-21Hourly cron reads stripe_receipt_log for unsent rows, sends branded AGV receipt via Resend. Scope=transactional (receipts are compliance-safe). Webhook receiver that inserts rows is a separate build — logged as Manual Task. Cron idles gracefully until wired.
Stripe receipt webhook insert (extends /api/webhooks/stripe)
2026-04-21Extends the existing comprehensive Stripe webhook at /api/webhooks/stripe to ALSO insert stripe_receipt_log rows on checkout.session.completed. Fire-and-forget pattern. UNIQUE(stripe_session_id) dedupes retries. No new webhook signature needed. Closes Manual Task recEOhQXz5giqgLEV. The hourly stripe
REC-I Pre-wedding timeline PDF — /portal/[clientId]/timeline-pdf
2026-04-21Print-CSS adaptive 18-slot wedding-day shoot plan. buildTimeline() takes ceremony time + guest count + venue → generates times for getting ready, first look, ceremony, formals, cocktail, dinner, toasts, golden hour, send-off. Portrait-orientation print layout. Browser-native Save-as-PDF via window.p
REC-J Competitor-watching cron (migration 080)
2026-04-21Weekly Mon 10:00 UTC. competitor_watch_handles seed list + competitor_watch_venues dedupe log (UNIQUE(business_id, normalized_name)). Calls Apify apify/instagram-profile-scraper sync-run. For each new venue found → drops Trello card to TRELLO_VENUES_TO_PITCH_LIST_ID. Graceful no-op when APIFY_TOKEN
/admin/empire-metrics weekly pulse (WoW %)
2026-04-21New 6-metric panel at top of empire-metrics: bookings, sneak peeks, padrinos chat, voice memos, NPS responses, short-link clicks. Each shows this-7d + prev-7d + % change with green/red tone border. pctChange() handles zero-base prev-period correctly.
Stripe cancellation -> SYSTEMS install forfeiture
2026-04-21Extended /api/webhooks/stripe customer.subscription.deleted handler to stamp subscription_canceled_at on any systems_installs row. Daily vesting cron then auto-forfeits. Closes the annual-billing clawback loop end-to-end. No new webhook signature.
Multi-channel notify() router src/lib/notify.ts
2026-04-21One function, one intent -> routes to Slack/Telegram/Trello/email based on urgency. 4 urgencies (info/action/urgent/critical) map to which channels fire. Every cron now wires notifications via this router. Consolidates 10+ ad-hoc integration points. notifyAsync() for fire-and-forget.
Empire digest Slack fanout + /admin/overview one-scroll dashboard
2026-04-21Empire digest cron now also fires notify() to Slack. New /admin/overview = morning-coffee dashboard with action queue + revenue snapshot + weekly pulse. One page Alex opens before anything else.
Content-hook generator + 15 retroactive Built Showcase cards
2026-04-21src/lib/content-hook.ts generates 3+ hook variations per build in Alex's tone (no dashes, first-person, Nate Herk patterns). Retroactively posted hooks for the 15 most impactful builds from this session to Trello Content board 'Built Showcase' list 69e48ab77b0a01bb03b6c6d2. New standing rule: every
REC3-F Cron-health Slack alerter (migration 081)
2026-04-21Every 3 hours. Classifies 15 cron probes green/yellow/red. cron_alert_state dedupes so a down cron alerts once per down-period. Fires notify({urgency:urgent}) on green->red transition, notify({urgency:info}) on recovery. First push-based cron observability in the stack.
REC3-A Client lifecycle auto-stager (migration 082)
2026-04-21Daily 03:00 UTC. Moves clients.status lead -> deposit_paid -> planning -> final_month -> week_of -> wedding_day -> editing -> delivered based on signals (balance, wedding_date, gallery_delivered_at). Logs every transition to client_status_log with reason. Removes a manual check I'd been doing every
REC3-H Revenue leak detector (migration 083)
2026-04-21invoice.payment_failed webhook now inserts into payment_failures ledger. Daily 08:00 UTC revenue-leak-detector cron fires T+2d action notification + T+5d urgent escalation via notify() router. invoice.payment_succeeded auto-stamps resolved_at. Zero money leaks silently anymore.
REC3-J Empire activity feed on /admin/overview
2026-04-21Live-feed panel unions 10 tables (bride_nps, padrino_messages, voice_memos, sunday_sneakpeek_log, ambassador_referrals, content_subscriptions, gallery_share_notifications, stripe_receipt_log, payment_failures, client_status_log). Sorted by most-recent, capped at 20. Every morning Alex opens /admin/o
REC4-J Portal everything bundle /portal/[clientId]/everything
2026-04-21Every-doc-one-page view: contract, invoices/receipts, timeline, voice memo, gallery link, payment schedule, padrinos, referrals. Single print-friendly surface. File: src/app/portal/[clientId]/everything/page.tsx. Reduces support emails. Manual Task open to add 'Everything' tab to src/components/port
REC4-A Portal link shortener /p/[code]
2026-04-218-char base62 short codes resolve ugly portal URLs. New portal_short_links + portal_click_tokens tables (race-safe per-click token pattern). Files: src/app/p/[code]/route.ts, src/app/api/admin/portal-short-links/route.ts, src/app/(dashboard)/admin/portal-links/page.tsx + PortalLinkForm.tsx, src/app/
REC4-L /metrics/open public transparency page
2026-04-2112-metric public transparency dashboard: voice memos, weddings shot, NPS 10s, padrinos paid, referrals, etc. ISR hourly. Zero PII — only aggregate counts. File: src/app/metrics/open/page.tsx. Moat: competitors can't fake these numbers. Will be footer-linked (Manual Task added).
REC3-B Revenue forecast /admin/revenue-forecast
2026-04-21CEO-level 12-week rolling cashflow forecast. Reads clients.package_amount, balance_cents, wedding_date, status. Weekly bars: confirmed (deposits paid) vs at-risk (pending) plus MRR overlay. File: src/app/(dashboard)/admin/revenue-forecast/page.tsx. Listed in /admin/all catalog. Pure server component
REC3-E Portal in-app notifications (bell + feed)
2026-04-21Bride-native bell + feed inside the portal. Floating top-right button with unread badge + dropdown feed. Timing-safe portal_token auth on GET + POST mark-read. Rate-limited 30/min. sessionStorage token cache so in-portal nav (without ?k=) stays authenticated. Migration: portal_notifications (applied
REC4-G Churn-risk weekly scoring + /admin/churn-risk
2026-04-21Weekly cron + admin page. Four weighted signals: portal inactivity 40%, payments 25%, health deficit 20%, opt-outs 15%. Top 5 >40 pings Slack. Gemini adversarial review: 9 findings addressed across 4 rounds (pagination, health ordering, opt-out max-not-sum dedupe, chunk visibility, 3 aux-query error
REC5-K Portal notifications archival cron (90d)
2026-04-21Weekly Sun 10:00 UTC. Batched 5k/query, 500k/run cap + more_remaining flag. Generic-error tags in response. Replay-mitigation via cronLimiter. Gemini CLEAN (6 findings across 5 rounds). Commit e41746b.
REC5-J Admin portal nudge composer
2026-04-21/admin/portal-nudge — client search + title/body/link composer + recent-nudges feed. API at /api/admin/portal-notifications. Prod requires ADMIN_API_SECRET (401 on missing). linkUrl relative-paths-only (no open-redirect). Icon regex whitelist. Rate-limited 30/min. Gemini CLEAN (6 findings across 5 r
REC5-F Padrino-paid → portal bell (first emitter)
2026-04-21First live emitter for REC3-E. notifyClientAsync fires after padrino-paid webhook succeeds. Dedupe by Stripe session.id. Also fixed pre-existing STRIPE_SECRET_KEY non-null assertion + createServiceClient try/catch wrap. Gemini CLEAN (3 findings across 3 rounds). Trello: IIFyj9HH. Hook: 7VDz0U2h. Com
REC5-G Bell click-through analytics + /admin/notifications-health
2026-04-21clicked_at column + v_portal_notifications_intent_stats view + admin page. trackClick keepalive fetch in bell. CLEAN Gemini. Commit 33e2ae8.
REC6-M /send-nudge skill (CLI shortcut)
2026-04-21~/.claude/skills/send-nudge/SKILL.md. Wraps POST /api/admin/portal-notifications with ADMIN_API_SECRET auth. Client-name → UUID lookup, validation, result report.
REC6-B Gallery-published bell emitter
2026-04-21notifyClientAsync in deliver-gallery. Two intents gallery_published + sneak_peek_ready. Dedupe per client+type. Also fixed 4 pre-existing findings: ownership check, logged catches, partner-name escape, galleryUrl https-only validation. Commit 2ab2a7a.
REC6-O Daily notifications digest Slack cron
2026-04-2120:00 UTC daily. Slack one-liner on last-24h engagement. Zero-day ping on silence. cronLimiter replay-safe. Commit 2ab2a7a.
Trello 🧰 Build Log list + 10 cards live on ALEX CEO board
2026-04-20Created ‘🧰 Build Log’ list (id 69e66f53fb8a3c2aefad71d4) on the ALEX CEO TO-DO board. Posted all 9 queued cards + bonus Manual Tasks pointer. Trello config updated. Claude will post directly to this list for all future impactful builds per the standing rule.
AGV.Systems /systems page seeded with 8 flagship entries
2026-04-20The /systems page was already built (pulls Airtable tblyGkpSkH2cQ5rTX). Was empty. Seeded 5 Flagships (FAP, Padrinos, NFC, Twin, Codex) + 3 Showpieces (Monday Briefing, Photo of Month, Referral Reconciler). Each has Name + Hook + What It Does + Category + Who It Helps + Stack + Story + Price + Pitch
Voice Memo Journey — wedding-day reveal
2026-04-20Bride records 60-90 sec message at booking, locked in vault, auto-delivered on wedding day at reveal_at. Migration 043 applied live. Files: supabase/migrations/043_voice_memos.sql, src/lib/emails/voice-memo-reveal.ts, src/app/api/cron/voice-memo-reveal/route.ts (hourly 0 * * * *), src/app/api/voice-
Sunday Sneak-Peek Ritual — 48-72hr post-wedding email
2026-04-20Monday 03:00 UTC (Sunday 7-8 PM PT) email to every couple whose wedding was 1-3 days ago. One-time ever (UNIQUE(client_id)). Migration 044 applied live. Files: supabase/migrations/044_sunday_sneakpeek_log.sql, src/lib/emails/sunday-sneakpeek.ts, src/app/api/cron/sunday-sneakpeek/route.ts. Codex revi
Venue Wedding Film Library — programmatic SEO moat
2026-04-20One cinematic wedding film per California venue embedded on /venues/[slug] with VideoObject JSON-LD for video-rich Google SERPs. Migrations 045 (8 cols + 4 CHECKs + partial index) + 046 (XOR constraint) applied live. Files: src/app/api/venues/[id]/film/route.ts, src/app/venues/[slug]/page.tsx, src/a
AGV.CONTENT 3-Tier Subscription — inbound recurring revenue
2026-04-20Three-tier Stripe subscription for AGV.CONTENT monthly retainers (Starter $1,497 / Growth $2,997 / Scale $4,997). Migrations 047 + 048 applied live. Codex rounds 1 + 2 completed — 7 total findings all fixed. Round 1 (5): event.created tie handling (>/lte), update-on-missing-row rowcount check + rele
CONTENT Vertical Landing Pages — Restaurants/Salons/Real Estate
2026-04-203 vertical-specific landing pages (/content/restaurants, /content/salons, /content/real-estate) feeding into /content/subscribe. Single dynamic route /content/[vertical] with generateStaticParams = 3 SSG pages pre-built at deploy. Each page: vertical-specific hero, 3 pains, 5 deliverables, 3 script
Honeymoon Film Add-On — $1,950 portal upsell
2026-04-20$1,950 honeymoon film add-on surfaced as an in-context upsell on /portal/[clientId]/honeymoon. Extended /api/portal-checkout PRODUCTS enum with honeymoon_film ($195,000 cents fixed price, travel-inclusive CA/HI/MX). New HoneymoonFilmUpsell component uses useRef double-click lock. No new DB needed —
Planner Ambassador Program — 15% rev-share partnership system
2026-04-20Trojan-Horse partnerships — named referral links + 15% lifetime rev-share. Migrations 049 + 050 applied live. Files: /refer/p/[slug] (now service-role, HMAC-signed cookie), /api/ambassadors POST (returns referral_link + partner_stats_url with access_token), /api/ambassadors/[id]/attribute POST (cros
Spanish-First Landing Pages — /es/bodas /es/quinceaneras /es/padrinos
2026-04-20Unlocks the Central Valley Latino market (70% of target). 4 Spanish-first landing pages (/es, /es/bodas, /es/quinceaneras, /es/padrinos) with hreflang alternates + Spanish metadata + ProfessionalService/Service/FAQPage JSON-LD. src/app/es/layout.tsx sets Spanish sub-root. Sitemap.ts updated. Copy is
Corte de Honor Add-On — $950 quinceañera upsell
2026-04-2030-min formal portrait session of damas + chambelanes on quinceanera day, $950. Added corte_de_honor SKU to /api/portal-checkout PRODUCTS enum ($95,000 cents fixed, 40+ portraits description). Cancel URL routes to portal timeline tab. Zero CV competitor offers this as a named add-on. Similar pattern
AGV.AI Business Line Launch — /ai hub + 5 service pages
2026-04-20New AGV.AI business line launched with hub + 5 productized service pages. src/lib/ai-services.ts as single source of truth; /ai + dynamic /ai/[service] route pre-builds all 5 at deploy. Services: POC 7-day ($1,500), Concierge ($4,500+$299/mo), Photographer OS (from $2,500), Skill Marketplace ($49-$2
SYSTEMS Positioning Pages — /systems/why + /systems/benchmarks
2026-04-20Closes 3 of 5 SYSTEMS brainstorm ideas with 2 new public pages. /systems/why bundles install-in-a-day timeline (#1) + built-by-a-photographer moat (#2) + Claude Agent SDK positioning (#3) + Codex-review differentiator. /systems/benchmarks with seeded Top-10%-vs-median stats + AGV-vs-industry deltas
CONTENT Upsell Pages — Ads Add-On + Shoot Day of Trust
2026-04-20Closes 2 more CONTENT brainstorm items. /content/ads-addon is $497/mo Meta ads add-on requiring active subscription — doubles ACV. /content/trust is 6-month commit with first shoot day credited back + transparent clawback + 30-day out. Both have FAQ JSON-LD and mailto CTAs. Sitemap updated. All 5 CO
Wedding → CONTENT Case Study Cron — empire flywheel #1
2026-04-20Empire flywheel loop #1 automated. Daily cron (0 18 * * *) scans clients with gallery_delivered_at in last 7 days, atomically claims via UNIQUE(client_id) on content_case_study_log, and POSTs a Trello card to Content Ideas list with couple+venue+5 pre-written reel angles + repurpose checklist. Migra
6 Brainstorm Landing Pages — /kit /substack /quince-shop /mentor-box /philosophy /shop/hub
2026-04-206 landing pages covering 6 brainstorm items. /kit (VIZION #3 physical kit, PARTIAL — procurement pending). /substack (Top-15 #15, PARTIAL — Substack config pending). /quince-shop (QUINCE #1, PARTIAL — PDF + builder pending). /mentor-box (Cross-business #8 BUILT — $497 library, compilation pending).
Padrinos Group Chat (QUINCE #2) — portal-native bilingual
2026-04-20Migrations 053 + 054 live. padrino_messages + chat_access_token on padrinos + BEFORE-INSERT trigger + XOR-relax fix. API /api/padrinos/[packageId]/messages with 3 auth modes (padrino token, bride portal_token, admin Bearer), rate-limit keyed per-IP per-package to resist XFF starvation. Public chat p
CONTENT -> SYSTEMS Upsell (Cross-biz #2) — 30-day auto-email + landing page
2026-04-20Migration 055 live + partial index. /api/cron/content-to-systems-upsell daily 0 19 * * * with claim-then-send + permanent/transient classification. Email template escaped + personalized (first-name + tier label + promo code). Landing /systems/for-content-clients with promo code normalizer (XSS-safe)
SOP — Shared Content Creator Hire (Cross-biz #7)
2026-04-20Full hiring SOP for the first shared team member across VIZION + QUINCE + CONTENT. Role definition + 3 comp options (K salary + 10% rev share preferred) + audition structure (8-week Option-C trial with pass criteria) + dropbox/trello conventions + 3-day onboarding + 90-day scorecard. Year-1 financia
Wedding Photographer OS Landing (Top-15 #13) — productized niche
2026-04-20/systems/wedding-photographer-os — photographer-niche SYSTEMS landing. 5 modules + vs-HoneyBook/Dubsado/Tave comparison table + 9-item install inclusions + not-a-fit excludes + 6-FAQ section. Product JSON-LD with 2 Offers ($2,500 install + $149/mo recurring) + FAQPage JSON-LD both via safeJsonLd. Pu
Unified Bilingual Portal MVP (Cross-biz #3) — preferred_locale + toggle + signed cookie
2026-04-20Migration 056 live. i18n foundation shipped: src/lib/i18n.ts (dictionary + HMAC-signed cookie + timing-safe verify), POST /api/portal/locale, <LanguageToggle>, /portal/[clientId]/language settings page. Self-review caught 1 MEDIUM (non-timing-safe token compare on page) — fixed with tokensEqualSafel
CEO Collection $16,500 Landing (Counter-Positioning #1)
2026-04-20/ceo-collection — founder-shoots-it $16,500 tier anchor page. 12-item inclusions + 6-item CEO-only items + 5-item qualifiers + 6-FAQ section. Service JSON-LD with Person provider + FAQPage schema via safeJsonLd. Mailto CTA for consideration (no Stripe yet — high-tier always needs consultation). Adde
Admin Dashboard — CONTENT -> SYSTEMS Upsell Pipeline
2026-04-20/admin/content-upsell — read-only pipeline view with 5 stat tiles + 5 section-grouped tables (eligible / incubating / sent-awaiting / converted / skipped). Reads content_subscriptions via service client. Inherits auth from (dashboard) layout. No new DB, API, or middleware. Follow-up: skip toggle + m
Admin Dashboard — Empire Metrics (one-screen health view)
2026-04-20/admin/empire-metrics — 5-section empire health dashboard. Active-state counts across 13 tables (archive_passes, padrino_*, voice_memos, sunday_sneakpeek_log, content_subscriptions, planner_ambassadors + ambassador_referrals, content_case_study_log, venues published films, nfc_*). HEAD-count queries
Counter-Positioning #2 — /built-by-a-photographer landing
2026-04-20Dual-industry authority page. Competitor grid (HoneyBook/Dubsado/Tave/PicTime/ShootProof vs AGV.SYSTEMS). 3 proof points + 4 moat explainers. SoftwareApplication JSON-LD with Person creator. Middleware publicRoutes. No new DB/API.
Counter-Positioning #4 — /documentary-style manifesto
2026-04-20Category-owning manifesto. 6 manifesto points + "what this is not / is" side-by-side + 3-question FAQ. Service + FAQPage JSON-LD via safeJsonLd. Owns "documentary-style wedding photography" long-tail SEO. No new DB/API.
Want to see tomorrow’s builds before they ship? Subscribe to the build-in-public substack.
Subscribe