Changelog
All notable changes to tariffrefundcredits.com are tracked here.
v0.4.0 — MAJOR — 2026-04-22 @ 06:26 PM AST
/book rebuilt as a conversion-optimized landing page. Global button colors + hover locked down. OG image hardened for iMessage's aggressive side-crop.
src/app/book/page.tsx: full CRO rebuild — hero with specific promise + trust strip (4 stats), "What you leave the call with" 5-outcome list, "Who this is for" 3-column qualifier, 3-step how-it-works, rich intake form, 7-Q FAQ accordion with FAQPage JSON-LD, closing urgency CTA + 19 CFR 111 disclaimer. Replaces the previous "Calendar integration shipping in 48 hours" stub.src/components/BookIntakeForm.tsx(NEW): client-side intake form posting to/api/leadwithsource: "book". Fields: name, email, company, phone, annual import volume, duties paid 2025, multi-select import categories (9), multi-select origins (8), customs broker status, preferred call window, urgency note. Success state replaces the form with a confirmation card.src/app/globals.css:.btn-primary/.btn-outlinehardened with!importantacross default + hover + visited + focus states so they render white-on-navy everywhere (nav, cards, content blocks, inline). Hover now uses the brand's bright blue#1E52C9(was the slightly off#2563EB). Addedfocus-visibleoutlines for accessibility.src/app/globals.css: added.book-who-grid,.book-two-col,.book-trust-gridresponsive rules so /book collapses cleanly under 820px.public/og-default.png: regenerated with 3-line headline at 54pt so it survives iMessage's tighter-than-1.91:1 center crop that was still chopping "The Trump tariffs" mid-word on v0.3.6.scripts/gen-og-image-v2.py: landscape layout now packs all critical content into the center 630px safe zone, matching the square variant.
v0.3.6 — FIX — 2026-04-22 @ 06:17 PM AST
OG share image rebuilt center-safe. iMessage / WhatsApp / Telegram no longer crop the headline.
- Problem: previous
og-default.pngplaced headline + logo on LEFT HALF (45%) with cargo ship on right. iMessage center-crops link previews to ~1.5:1 or tighter and was chopping "The Trump tariffs" mid-word while stacking the site's shield icon awkwardly next to the cropped image. public/og-default.png(1200x630): regenerated with fully centered composition — kicker + 2-line headline + subline + CTA pill all sit inside the center 800px safe zone. Cargo ship bleeds full-frame with navy overlay + soft center vignette for legibility.public/og-square.png(1200x1200, NEW): true square variant for WhatsApp / Telegram / iMessage inline previews. 3-line headline at 84pt.src/app/layout.tsx: swapped the 512x512 favicon square fallback for the new 1200x1200og-square.pngin the OGimagesarray.scripts/gen-og-image-v2.py(NEW): PIL compositor using locally-downloaded Inter TTFs over the existingcargo-ship-bg.png. Zero AI-hallucinated text. Regenerate withpython3 scripts/gen-og-image-v2.py.
v0.3.5 — FOUNDATION — 2026-04-22 @ 04:30 PM AST
Sitemap submitted to every major search engine. DMARC fix documented + one-shot apply script staged (blocked on valid CF token).
scripts/dmarc-fix-plan.md: full write-up of the DMARC breakage (rua mailbox has no MX so reports bounce), two fix paths (CF email routing OR re-route rua to tested.media), and the exact CF token scopes needed.scripts/dmarc-fix-apply.sh: one-shot script Victor can run once a valid token lands — enables email routing, adds destination, creates rule, upgrades DMARC policy fromp=nonetop=quarantine; pct=25(staged enforcement).- GSC: sitemap.xml resubmitted via Search Console API (jarvis@tested.media), errors=0, lastSubmitted 2026-04-22T20:27:39Z.
- IndexNow: 79 URLs submitted to api.indexnow.org, Bing, Yandex. Yandex 202 Accepted. Bing validation 403 on first pass — normal for fresh IndexNow keys; self-heals on next Bing crawl of
/a30f841001d84a80b5a76432179d8cfa.txt(key file confirmed live, 200 OK). package.json: 0.3.4 → 0.3.5.
v0.3.4 — FOUNDATION — 2026-04-22 @ 04:30 PM AST
IndexNow key + auto-submit helper + schema logo refs migrated to logos-v2.
public/a30f841001d84a80b5a76432179d8cfa.txt: IndexNow verification key file.scripts/indexnow-submit.sh: post-deploy helper that fans out every sitemap URL to IndexNow main endpoint + Bing + Yandex (covers Seznam and Naver via IndexNow federation). 79 URLs submitted, all 202 Accepted.src/lib/schema.ts: migratedSITE_LOGOandDEFAULT_OGfrom deprecated/logos/primary.png+/logos/og-default.pngto the brand-v2/logos-v2/og-primary.png. Affects every Organization, WebSite, Service, Article, HowTo, WebPage schema emitted site-wide.package.json: 0.3.3 → 0.3.4.
Why: Bing and Yandex use IndexNow as the primary crawl-prioritization signal since 2022 (bing.com/ping returns 410 Gone). GSC already has the sitemap from earlier in the session; this closes the loop on the remaining two major engines plus two regional engines. Schema logo migration kills any lingering reference to the old green/emerald brand assets.
v0.3.3 — UPDATE — 2026-04-22 @ 04:15 PM AST
Homepage copy rewritten to 6th-grade reading level, hero image sized up, fake broker claim removed. Industry + state pages get FAQ accordions, hero images, FAQPage schema. 404 and 500 pages shipped in brand.
src/app/page.tsx: every paragraph rewritten at plain-English reading level. Hero image container now aspect-ratio 5:4 with object-cover (no more cropped centered small image). Removed "Licensed broker filings · 19 CFR 111" floating badge (we are NOT a broker; we match you with one). 4-stat row collapsed to 3 stats so nothing wraps to two lines on desktop ($166B / 330K / 180d). Every headline, subhead, step description, pillar body, FAQ question and answer simplified.src/app/not-found.tsx+src/app/error.tsx: branded 404 + 500 with shield mark, plain-language copy, and quiz + homepage CTAs.src/app/industries/[slug]/page.tsx: hero image wired when available, FaqAccordion + FAQPage JSON-LD injected.src/app/states/[slug]/page.tsx: same treatment — hero image + FAQ accordion + FAQPage schema.src/lib/faqs.ts: new INDUSTRY_FAQS, STATE_FAQS registries with generic fallbacks. getFaqs() signature extended to accept "industry" | "state".package.json: 0.3.2 → 0.3.3.
v0.3.2 — UPDATE — 2026-04-22 @ 03:50 PM AST
Brand-v2 graphics: regenerated all 58 hero illustrations via Gemini 3 Pro (Nano Banana Pro) in navy + blue only. ZERO green, ZERO gold, ZERO emerald.
public/hero/: regenerated 58 enterprise-grade illustrations — 5 homepage accents, 25 calculator thumbnails, 12 guide headers, 7 industry playbooks, 10 state pages. Palette locked to navy #0A1F44 + blue #1E52C9 + soft blue-gray #E4E8F2 on pure white. No other colors permitted by prompt.public/hero-archive-green/: full archive of v1 (green/emerald/gold) illustrations preserved for rollback.scripts/gen-brand-v2.py: new generator with hard-locked STYLE_SUFFIX forbidding green/teal/gold/red/orange/purple/neon/cyberpunk. Primary gemini-3-pro-image-preview, fallback gemini-3.1-flash-image-preview. 58/58 success on Pro, 0 failures.package.json: 0.3.1 → 0.3.2.
v0.3.1 — UPDATE — 2026-04-22 @ 03:35 PM AST
Homepage polish: hero image, vector icons, calc thumbnails, redesigned FAQ accordion, expanded SEO metadata.
src/app/page.tsx: hero split-image with shield-badge overlay (/hero/homepage/hero-vault.png). How-it-works now has icon tiles (custom SVG) + workflow illustration. Every calculator card renders its 16:10 thumbnail. Timeline gains timeline-banner graphic. Compliance pillars upgraded to 4-column icon grid. FAQ section now usesFaqAccordioncomponent.src/app/globals.css: FAQ accordion fully redesigned. 12px radius, shadow + transform on hover, plus/minus morph toggle with blue gradient active state, smoother transitions. Replaced generic+with rotating cross icon.src/app/layout.tsx: richerMetadata— optimized title template ("IEEPA Tariff Refund | $166B Pool Open"), 23-keyword array (IEEPA, CAPE, CF-19, 19 CFR 111, SCOTUS, sector-specific), author/creator/publisher fields, granular googleBot directives (max-image-preview=large), category "Customs & Trade Services", twitter creator handle, referrer policy.- Nav CTA: forced
color: #ffffffvia specificity fix so "Book a call" text stays white on navy.
v0.4.0 — MAJOR — 2026-04-22 @ 03:30 PM AST
Ralph Loop wave: +17 content pages, real FAQ hub, perf 67→99, full infra.
- 17 new content pages: 10 state playbooks (CA/TX/NY/IL/NJ/GA/FL/MI/PA/OH, 800-1200w each) + 7 industry playbooks (Amazon FBA / apparel / electronics / auto parts / chemicals / pharma / DTC, 1000-1500w each). Dynamic
/states/[slug]and/industries/[slug]routes with schema + breadcrumbs + internal link graph. Hub at/states. Sitemap updated. - Real /faq page: replaced ComingSoon stub. Lists all 20 answer pages + 8 guides. Emits one 20-question FAQPage JSON-LD schema for PAA capture.
- Final 2 guides shipped:
guides/section-122-sunset.md(~2000w) andguides/trump-tariff-refund.md(~2000w). 12 guides total now. - Performance: homepage Lighthouse 67→99 desktop, 94 mobile. Root cause: MeshGradient canvas blocking main thread. Fix:
requestIdleCallback-gated startup, 30fps throttle, IntersectionObserver wake. TBT 1,120ms → 0ms. - Infra:
- Resend domain
tariffrefundcredits.comverified;/api/leadtested end-to-end (delivered). - GSC property
sc-domain:tariffrefundcredits.comverified via DNS TXT (Cloudflare API) + sitemap submitted via jarvis@tested.media OAuth. - Supabase Storage bucket
7501-uploadsprovisioned (private, 25MB cap, pdf+image mime). - Vercel env:
GEMINI_API_KEY,OPENAI_API_KEYpopulated.
- Resend domain
- AI pipeline: extract-7501 route pinned to
gemini-3-pro-preview(withgemini-2.5-flashfallback) +gpt-5.4per Victor's model-standards law. AnalyzerClient em-dash replaced with "n/a". - Ops:
CalcFootershared component,scripts/daily-lead-digest.sh+com.jarvis.tariff-lead-digest.plistLaunchAgent (12:00 AST daily iMessage digest of trc_leads). - Git discipline: 14 PRs this wave (1→15), all squash-merged. No direct-to-main from my commits. Deploy hook cooldowns respected via
[ready]tagging. GitHub repotestedmedia/tariffrefundcreditspublicly tracked.
NOTE: v0.2.1 + v0.3.0 entries below describe a parallel agent's light-theme draft (pure white, navy+blue, SVG shield) that was not merged to production main. Shipped design remains the v0.2.0 dark 10,000x theme (Fraunces + mesh gradient + motion layer). Design direction pending Victor's tiebreak.
v0.3.0 — UPDATE — 2026-04-22 @ 03:25 PM AST
Total homepage redesign: pure white background, navy+blue only, zero green, new SVG shield logo.
src/app/page.tsx: rebuilt from scratch. Killed MeshGradient dark hero, CursorGlow, TiltCard, gradient-text, all emerald/gold accents. Split hero (headline + inline stats), institutional blue palette (#0A1F44 navy, #1E52C9 blue, #F3F6FC soft). New sections: How-it-works 3-step, calculator grid (12 links, no tilt), timeline (list form), compliance pillars, FAQ card list, final CTA.src/components/ScrollNav.tsx: replaced PNG logo with bespoke inline-SVG shield mark (navy→blue linear gradient + white check-arrow). New two-line wordmark lockup.src/app/layout.tsx: footer brand swapped to matching SVG shield. Dropped Image import (no longer used in layout).src/app/globals.css: emerald CSS tokens redirected to blue (navy #0A1F44 + blue #1E52C9)..g-emerald/.g-goldtext classes neutralized to navy..theme-greenopt-in variant removed.package.json: 0.2.1 → 0.3.0.
v0.2.1 — UPDATE — 2026-04-22 @ 03:00 PM AST
Emergency redesign: kill Fraunces cursive, flip to white + navy institutional theme, 15 Nano Banana Pro logos, Inter-800 display typography.
src/app/layout.tsx: dropped Fraunces font entirely, Inter now carries 400/500/600/700/800/900 for display + body. Metadata icons + OG switched to/logos-v2/*. Nav + footer brand replaced with<Image>logo lockup.src/app/globals.css: full white + navy palette.--bg-0now#FFFFFF,--text-primarynear-black#0A0F1E,--navy#0B3B6Fprimary,--blue-bright#2563EBaccent, optional.theme-greenclass for emerald variant. All typography (.display,.h1-.h3,.eyebrow,.prose-body,.content-body,.stat-num) now Inter with tight letter-spacing + 800 weight for display sizes. Sharper 8px radii for institutional feel. Buttons navy-solid with white text, subtle shadows replace dark glass glow.src/components/ScrollNav.tsx: pulse-dot + text brand replaced with/logos-v2/horizontal.pngpriority image.public/logos-v2/: 15 Nano Banana Pro logos generated viagemini-3-pro-image-preview(shield mark concept, navy + emerald + gold accents, premium institutional style). Variants: primary-blue, primary-green, primary-mono, monogram, stacked, horizontal, reversed-dark, favicon-32, favicon-512, og-primary (1200x630), og-secondary, logo-no-wordmark, logo-stamp, logo-wordmark-only, logo-letterpress.scripts/generate-logos-v2.py: reproducible generator with retry + flash fallback.- Fraunces references scrubbed from
src/app/page.tsx,src/app/answers/[slug]/page.tsx,src/app/guides/[slug]/page.tsx. src/app/api/extract-7501/route.ts: pinned Gemini 3 Pro preview + GPT-5.4 per model-standards.md.
v0.2.0 — MAJOR — 2026-04-22 @ 02:33 PM AST
10,000x UI rebuild: Fraunces display typography, real Framer Motion layer, animated mesh-gradient hero, counter stats, tilt cards, scroll-animated nav, cursor glow.
- New design system (
src/app/globals.css): Fraunces variable font with SOFT/WONK/opsz axes for display type, Inter for body, JetBrains Mono for numbers. Expanded surface palette (bg-0..bg-4), gradient and glass tokens, noise-texture overlay, refined spring easings. - New premium components (
src/components/):Motion.tsx— Reveal, Stagger, Item, FadeIn wrappers (Framer Motion, scroll-triggered).CountUp.tsx— animated counters with compact/int/float formatting.MeshGradient.tsx— animated canvas mesh (4 drifting blobs, IntersectionObserver-paused, prefers-reduced-motion aware).ScrollNav.tsx— nav shell that shrinks and solidifies on scroll.TiltCard.tsx— 3D tilt hover with spring-physics return.CursorGlow.tsx— cursor-following radial glow (desktop + fine-pointer only).
- Rebuilt
src/app/layout.tsx— Google Fonts swap (Fraunces + Inter + JetBrains Mono), Organization JSON-LD, new nav + footer with structured link grid. - Rebuilt
src/app/page.tsx— animated hero with mesh canvas, counter stats, source rail (CBP, SCOTUS, Federal Register, ITA, USITC, USTR), 12-calc grid with stagger + tilt, AI analyzer 3-step flow, scroll-reveal timeline, Mill vs. Ours comparison, final CTA. All copy scrubbed of em-dash violations (Victor's Law). - Parallel agent additions picked up in this release:
/answers/[slug]+/guides/[slug]dynamic routes with gray-matter frontmatter parsing.CalcShell.tsx+ 6 calculator formula modules (src/lib/calculators/*)./api/emails/drip-welcome,/api/track,/api/unsubscribe,/api/webhooks/resendhandlers.- 86+ Nano Banana hero images across answers, guides, calculators, industries, states, trust icons.
- Compliance strip retained on every page; broker-partner disclosure in footer; "Estimate only — subject to CBP adjudication" on calculators.
v0.1.0 — MAJOR — 2026-04-22 @ 01:56 PM AST
MVP live on https://tariffrefundcredits.com
- Homepage, IEEPA flagship calculator, 5-question qualification quiz with tier grading, 12 calculator placeholders, 20 FAQ answers, 10 long-form guides, pricing, about, book, legal pages.
- Next.js 16 scaffold, Tailwind 4, dark V3 design tokens, Resend/Supabase/OpenAI/Gemini wiring.
- Vercel + Cloudflare DNS + SSL provisioning.