Skip to content

wxyc.org/donate page + nav entry (the apps' fallback destination) #220

Description

@jakebromberg

Problem

wxyc.org has no /donate page (pages/ has no route for it), and the mobile apps' compile-time fallback URL — https://wxyc.org/donate — needs a real page behind it before either app ships. The page is also where the legally load-bearing donation copy lives.

Desired end state

pages/donate.jsx plus nav entries — which means editing components/Header.js (and likely components/Footer.js), not just adding the page. Depending on the SEB board's donation-platform decision, the page is either a thin page linking/embedding the LGL donation form or the canonical hosted page itself. Until that decision lands, ship the page with the ask and the disclosures below and no payment button — it must exist because the apps bake it in as their fallback destination, and it can gain the payment link/embed without any app release.

Copy constraints (legally load-bearing — from SEB's status, not taste)

  • NEVER describe gifts as "tax-deductible". SEB (Student Educational Broadcasting, Inc., the license-holding NC nonprofit) has no IRS 501(c)(3) determination.
  • The non-deductibility statement must appear in the federal safe-harbor format: same type size as the ask, near it, visible before any payment button. Exact wording is pending CPA sign-off; use the current draft and mark it for replacement.
  • Appeals must identify SEB, not UNC, as the soliciting organization (UNC Policy Manual 600.2.5.2[R]).
  • Include a plain sentence on how funds are used — Apple's App Store Review Guideline 3.2.1 requires the page the app links to disclose this.

Tests

The repo has a live Vitest + RTL suite (__tests__/, run by npm test in pr-open.yml). Add __tests__/donatePage.test.jsx asserting the rendered page contains the safe-harbor non-deductibility statement, names SEB as the soliciting organization, and carries the use-of-funds sentence. Repo trap: Vitest here cannot transform JSX in .js files — the test file must be .jsx.

Infrastructure note (for the record, not this ticket)

If WXYC ever self-hosts Apple Pay on the Web, the merchant domain must serve /.well-known/apple-developer-merchantid-domain-association — and wxyc.org/.well-known/* is delicate: the links-registry Worker routes the AASA file as an exact path so GitHub Pages' /.well-known/acme-challenge/* cert renewal passes through, and a wildcard route would silently break certificate renewal for all of wxyc.org. Hosting payment on the vendor's domain avoids this entirely.

Acceptance criteria

  • /donate renders with the ask + all disclosure copy above
  • Nav entry in Header (and Footer if that's where sibling links live)
  • __tests__/donatePage.test.jsx pins the three disclosure assertions
  • No payment button until the SEB board's destination decision lands

Branch: feature/220-donate-page off main.

Related

Sibling slices of the WXYC donation-button initiative (contract → backend → clients):

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions