Related blog content: build an event ticketing app with ButterCMS & Quarkus
Develop a functional ticketing app with Quarkus and ButterCMS - book tickets, receive a confirmation message, and more.
What you’ll build
An event management system that includes:- Event listings with dates, times, and locations
- Category-based organization
- Upcoming/past event filtering
- Event detail pages
- Integration with registration platforms
- Calendar display
Architecture overview
We’ll use a combination of ButterCMS features:Step 1: Create event categories collection
Create a Collection for event categories:- Go to Content Types → Collections
- Create “Event Categories” with fields:
- Name (Short Text) - Category name
- Slug (Short Text) - URL-friendly identifier
- Color (Short Text) - Display color (hex code)
- Icon (Media) - Category icon (optional)
- Conference
- Workshop
- Webinar
- Meetup
- Training
Step 2: Create venues collection
Create a Collection for event venues:- Create “Venues” with fields:
- Name (Short Text) - Venue name
- Address (Long Text) - Full address
- City (Short Text) - City name
- Country (Short Text) - Country
- Latitude (Number) - For map display
- Longitude (Number) - For map display
- Image (Media) - Venue photo
- Capacity (Number) - Maximum attendees
- Website (Short Text) - Venue website URL
Step 3: Create the event Page Type
Create a Page Type for events with these fields: Basic information- Title (Short Text): Event name
- Description (WYSIWYG): Full event description
- Featured Image (Media): Event banner image
- Category (Reference): Link to Event Categories
- Start Date (Date): Event start
- End Date (Date): Event end
- Timezone (Dropdown): Event timezone
- Event Type (Dropdown): In-Person, Virtual, Hybrid
- Venue (Reference): Link to Venues (for in-person)
- Virtual Link (Short Text): Video conference URL (for virtual)
- Registration URL (Short Text): External registration link
- Registration Deadline (Date): Last day to register
- Price (Number): Ticket price (0 for free)
- Max Attendees (Number): Capacity limit
- Meta Title (Short Text)
- Meta Description (Long Text)
Step 4: Fetch and display events
Fetch all events
API response structure
Step 5: Filter upcoming vs past events
Step 6: Build the events UI
Event card component
Events list with filtering
Step 7: Event detail page
Integration with external services
Third-party service UIs and embed formats may change. Verify current implementation details on each provider’s documentation.