Changelog

Shipped this week

Every version. Every deploy. Public commit trail for enterprise customers who want to know we ship and we document what we ship.

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/lead with source: "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-outline hardened with !important across 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). Added focus-visible outlines for accessibility.
  • src/app/globals.css: added .book-who-grid, .book-two-col, .book-trust-grid responsive 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.png placed 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 1200x1200 og-square.png in the OG images array.
  • scripts/gen-og-image-v2.py (NEW): PIL compositor using locally-downloaded Inter TTFs over the existing cargo-ship-bg.png. Zero AI-hallucinated text. Regenerate with python3 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 from p=none to p=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: migrated SITE_LOGO and DEFAULT_OG from deprecated /logos/primary.png + /logos/og-default.png to 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 uses FaqAccordion component.
  • 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: richer Metadata — 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: #ffffff via 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) and guides/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.com verified; /api/lead tested end-to-end (delivered).
    • GSC property sc-domain:tariffrefundcredits.com verified via DNS TXT (Cloudflare API) + sitemap submitted via jarvis@tested.media OAuth.
    • Supabase Storage bucket 7501-uploads provisioned (private, 25MB cap, pdf+image mime).
    • Vercel env: GEMINI_API_KEY, OPENAI_API_KEY populated.
  • AI pipeline: extract-7501 route pinned to gemini-3-pro-preview (with gemini-2.5-flash fallback) + gpt-5.4 per Victor's model-standards law. AnalyzerClient em-dash replaced with "n/a".
  • Ops: CalcFooter shared component, scripts/daily-lead-digest.sh + com.jarvis.tariff-lead-digest.plist LaunchAgent (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 repo testedmedia/tariffrefundcredits publicly 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-gold text classes neutralized to navy. .theme-green opt-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-0 now #FFFFFF, --text-primary near-black #0A0F1E, --navy #0B3B6F primary, --blue-bright #2563EB accent, optional .theme-green class 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.png priority image.
  • public/logos-v2/: 15 Nano Banana Pro logos generated via gemini-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/resend handlers.
    • 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.

Source of truth on GitHub

Every commit, every PR, every review is publicly tracked at github.com/testedmedia/tariffrefundcredits.

About usPricingBook a call