From f315f6725bff51aa325a59de75851ec4931d8caa Mon Sep 17 00:00:00 2001 From: Colby Maxwell Date: Thu, 16 Jul 2026 09:31:50 -0400 Subject: [PATCH 1/2] feat(about,footer): founder-funded transparency copy, auto-upgrades when DONATE_URL is armed Phase 1 states plainly that Oravan is founder-funded with no ads, sponsors, or investors, in the footer and a new About "Who pays for this?" section. Both surfaces read the existing DONATE_URL constant (lib/site.ts) and automatically add a "chip in" ask + link the moment it's set - no second flag to keep in sync, matching the existing donate-affordance wiring pattern. All strings added to messages/en.json and messages/es.json in the same change. Co-Authored-By: Claude Sonnet 5 --- app/[locale]/about/page.tsx | 17 +++++++++++++++++ components/Footer.tsx | 22 ++++++++++++++++++++++ messages/en.json | 11 ++++++++--- messages/es.json | 11 ++++++++--- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/app/[locale]/about/page.tsx b/app/[locale]/about/page.tsx index 7190f00..7c6d53d 100644 --- a/app/[locale]/about/page.tsx +++ b/app/[locale]/about/page.tsx @@ -27,6 +27,23 @@ export default async function AboutPage({ params }: { params: Promise<{ locale:

{t('fundingTitle')}

{t('fundingBody')}

+ {/* Phase 2 upgrade: dark by construction until DONATE_URL is set (same + constant DonateSupport below reads - no second flag to keep in + sync). Never claims tax-deductibility or nonprofit status - this + is a personal, founder-funded contribution, not a charitable gift. */} + {DONATE_URL && ( +

+ {t('fundingSupportBody')}{' '} + + {t('fundingSupportCta')} + +

+ )}
{/* Who's accountable + how to reach a person — surfaced outside the diff --git a/components/Footer.tsx b/components/Footer.tsx index 03a4a3e..1a6eea3 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -23,6 +23,28 @@ export function Footer({ donateUrl = DONATE_URL }: { donateUrl?: string | null }

{t('footer.lore')}

{t('footer.mission')}

{t('footer.aiNote')}

+ {/* Phase 1/2 funding transparency line: dark copy today (DONATE_URL + null), automatically upgrades to the "funded + supporters" line + with a Support Oravan link the moment DONATE_URL is set - one + constant, no separate flag, same pattern as the nav Donate link + below. */} +

+ {donateUrl ? ( + <> + {t('footer.fundingLive')}{' '} + + {t('footer.fundingCta')} + + + ) : ( + t('footer.funding') + )} +