Appearance
What Are Events on the NOMA Site?
Events on notonemorealabama.org are powered by a Custom Post Type (noma_events) and a React app in the hello-noma WordPress theme. The site shows events in List, Grid, and Calendar views and on individual event pages. Event data comes from two sources:
- Givebutter sync — Ticketed event campaigns in Givebutter are synced to WordPress so the site shows the event and embeds the registration widget. Donations and tickets still flow to LGL via NOMA Sync.
- Manual / recurring — Staff create events in WordPress admin (e.g. weekly support groups, monthly meetings). These can be one-time or recurring (weekly/monthly); no Givebutter involved.
So: one event system (CPT + React), two ways events get there (Givebutter sync + manual/recurring).
The Event System (hello-noma theme)
- CPT:
noma_events— title, dates, venue, event type (ticketed, awareness, rsvp), optional Givebutter campaign/widget IDs, optional recurrence rules. - REST API: The theme exposes events (and recurrence meta) for the front end; NOMA Sync Worker calls separate endpoints to create/update events from Givebutter.
- React app: Event archive (List, Grid, Calendar), filters, single event page. Recurring events are expanded into occurrences in the browser so each date shows correctly.
- Admin: Meta boxes for event details, recurrence (for non-ticketed only), and Givebutter widget info when synced.
Two Data Sources
| Source | Type | How it works | Doc |
|---|---|---|---|
| Givebutter | Ticketed events | Givebutter event campaign → NOMA Sync Worker → WordPress REST API → noma_events post. Site shows event and registration widget. | Givebutter sync |
| Manual / recurring | Free, non-ticketed | Staff create/edit in WP admin. Optional recurrence (weekly/monthly). No Givebutter. | Recurring events |
Givebutter-synced events never have recurrence; the recurrence UI is hidden for them. Recurring events are WordPress-only.

