Skip to content

Public Homepage

A dynamic public landing page that showcases your organization and aggregates content from across the platform.


Sections

The homepage assembles its content from enabled modules. Sections are only displayed when their corresponding module is active and has data to show.

  • Hero banner — organization name, logo, tagline (configurable via Settings), and call-to-action buttons for campaigns and volunteer signups
  • Stats counters — active campaigns, total emails sent, and volunteer signups (shown only when counts are greater than zero)
  • Featured campaigns — up to 3 active campaigns, sorted by highlight status then creation date, with email counts and descriptions
  • Upcoming shifts — up to 3 open shifts with date, time, location, and spots remaining
  • Latest videos — up to 4 recently published videos from the media library, displayed in a horizontal scroll strip with thumbnails and durations
  • Upcoming events — up to 3 future events from Gancio with date, location, and tags
  • Recent activity — a compact activity feed showing the latest platform actions

Data & Caching

All homepage data is fetched from a single API endpoint (/api/homepage) and cached in Redis for 2 minutes. Individual section queries use Promise.allSettled so that a failure in one module (e.g., Gancio being offline) does not prevent the rest of the page from loading.


Configuration

  • Organization name and logo — set via Settings > Organization
  • Homepage tagline — set via the homepageTagline field in site settings
  • Module visibility — controlled by feature flags (enableInfluence, enableMap, enableMediaFeatures, enableEvents, enablePayments, enableLandingPages)

Public Routes

  • /home — public homepage