Docs

    Community partners pattern

    Use CommunityPartnersSection to publicly acknowledge fellow rescues and local businesses supporting the org.

    Standard

    - `category` distinguishes rescue/animal-welfare collaborators (`rescuePartners`) from commercial businesses (`businessPartners`) — these are two genuinely different relationships, not a ranking. A site may define its own category keys as long as `sections` and `partners` use matching values.

    - **No favoritism, ever.** The component always sorts partners alphabetically by name within a category — never by date added, never manually. Don't add a `featured`/`order` field to work around this; if a site wants a formal tiered sponsorship program, that requires a defined objective threshold (e.g. a real dollar-value giving program) and is out of scope for this pattern.

    - **A category with zero matching partners renders nothing** — no heading, no "coming soon" placeholder. This avoids a dead subsection sitting next to real content; the section appears automatically once the site's data file gets its first entry in that category.

    - For `businessPartners` specifically: every partner's `description` must stay neutral and factual — no comparative or qualitative language ("best," "highest quality"), no pricing, no purchase inducements. This is the actual compliance mechanism: the IRS qualified-sponsorship rule (26 U.S.C. §513(i)) turns on the acknowledgment's content, not on the presence of a disclaimer sentence — there's no magic-words requirement. A category's `sections[].description` may optionally add a "not an endorsement" note for extra clarity (useful mainly to keep a partner business from treating the listing as marketing copy), but it's editorial, not legally required, and can be dropped if it clashes with the page's tone. Rescue-partner collaboration doesn't need this treatment at all (mutual nonprofit aid isn't a UBIT/advertising concern).

    - Never invent a partner. Every entry must be a real, sourced relationship — a name mentioned once in a single event post is not the same as a standing partnership worth a permanent listing.

    - `logoSrc` and `url` are both optional; the card degrades gracefully to a name-only treatment when a logo isn't available yet.

    Reference

    - Live example: Community partners example page

    - Component: `template/src/components/patterns/CommunityPartnersSection.tsx`

    - First live site: `the-comeback-pack` (`src/pages/Partners.tsx`, `src/data/partners.ts`) — reference implementation for the per-site data file and page wiring.