page:blueprints:nonprofits:event registration:next js

Nonprofits: event registration using Next.js

Summary

A event registration blueprint for nonprofits built with Next.js on Ample. Domain schema: course_groups (program, cohort, start_at, end_at): programs and cohorts; memberships (course_group_id, participant_reference, role): participants, volunteers and staff; sessions (course_group_id, starts_at, title, location): program sessions and events; materials (course_group_id, title, object_key, visibility): program materials; events (seq, record_type, record_id, kind, at): application-owned history written in the same transaction. Public information: mission and programs, events, donation entry point. Kept out of scope until handling is reviewed: beneficiary identity and case notes, donor records. Beneficiary and donor data are sensitive; donations are handled by your payment provider and are not modeled here. Technical basis verified on Next.js: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected).

Representative Queries

Resource Requirements

Infrastructure Requirements

Prerequisites

Tested Configuration

Workflow Steps

  1. Model the nonprofits domain: Create the tables course_groups, memberships, sessions, materials, events. Programs and cohorts lives in course_groups; keep the sensitive classes (beneficiary identity and case notes, donor records) out of this schema.
  2. Model sessions with capacity and registrations with status.
  3. Register transactionally with a capacity check and an event per registration.
  4. Reject stale concurrent updates.
  5. Deploy and verify history and conflict handling.
  6. Deploy: Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
    ample deploy . --name --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...
    
  7. Verify: Run the pattern self-test(s) from the example (/p/transactional-workflows) and your own acceptance checks for the nonprofits workflow.
    ample logs --kind build
    

Examples

Success Checks

Limitations

Cost Estimate

Evidence Summary

Last Verified At

2026-09-21T02:34:39Z

Unknowns