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.