A complete static website for event management with calendar, ticket sales via Pretix, and performer application integration.
- Interactive Event Calendar: Using FullCalendar.js to display upcoming events
- Event Listings and Details: Browse events with filtering options
- Ticket Sales: Integration with self-hosted Pretix for ticket sales
- Performer Applications: Integration with LimeSurvey for performer submissions
- Responsive Design: Mobile-friendly layout for all device sizes
event-website/
├── index.html # Home page with event calendar
├── events/ # Events pages
│ ├── index.html # Events listing with filters
│ └── event-template.html # Template for individual event pages
├── apply/ # Performer application page
│ └── index.html # Page with embedded LimeSurvey form
├── assets/
│ ├── css/ # Stylesheets
│ │ ├── main.css # Main styles
│ │ ├── calendar.css # Calendar styles
│ │ ├── events.css # Events page styles
│ │ ├── event-details.css # Event detail page styles
│ │ └── apply.css # Application page styles
│ ├── js/ # JavaScript files
│ │ ├── main.js # Main site functionality
│ │ ├── calendar.js # Calendar implementation
│ │ ├── events.js # Events listing functionality
│ │ ├── event-details.js # Event detail page functionality
│ │ └── apply.js # Application page functionality
│ └── images/ # Site images and event photos
├── data/
│ └── events.json # Event data store (for static site)
└── README.md # This documentation file
- Web hosting service (like Porkbun's static hosting)
- Pretix.eu account (for ticket sales)
- LimeSurvey account (for performer applications)
- Clone this repository
- Customize the configuration:
- Update your Pretix event URL in
event-template.html
- Update the LimeSurvey URL in
apply/index.html
- Customize branding, colors, and text in CSS files
- Add your own event data to
data/events.json
- Update your Pretix event URL in
- Add event images to
assets/images/events/
directory - Upload the files to your web hosting service
For each new event:
- Create a new HTML file in the
events/
directory (e.g.,events/my-new-event.html
) - Copy the content from
event-template.html
- Add event data to
data/events.json
with a matching slug - Add event images to
assets/images/events/
The event details page will automatically load the event data based on the slug in the URL.
The events.json
file contains all event data including:
- Basic information (title, date, location)
- Descriptions and images
- Performer details
- Schedule information
- Venue details
- Pretix event configuration
{
"id": 1,
"title": "Event Title",
"slug": "event-slug",
"category": "Music",
"date": "2025-06-15",
"startTime": "18:00",
"endTime": "23:00",
"location": "Venue Name",
"shortDescription": "Brief description of event.",
"description": "<p>Full HTML description...</p>",
"image": "/assets/images/events/event-image.jpg",
"bannerImage": "/assets/images/events/event-banner.jpg",
"price": 45,
"featured": true,
"pretixEvent": {
"organizerSlug": "hausmuerte",
"eventSlug": "qw"
},
"performers": [
{
"name": "Performer Name",
"role": "Role",
"image": "/assets/images/performers/performer.jpg"
}
],
"schedule": [
{
"time": "19:00",
"title": "Event Start",
"description": "Description"
}
],
"venue": {
"name": "Venue Name",
"address": "Venue Address",
"phone": "Phone Number",
"website": "Website URL",
"websiteLabel": "Display text"
}
}
The site uses CSS variables for easy customization. Edit the :root
section in assets/css/main.css
to change colors, fonts, and other design elements:
:root {
/* Color palette */
--primary-color: #6200ea;
--primary-light: #9d46ff;
--primary-dark: #0a00b6;
/* Add more custom variables here */
}
To add new pages:
- Create a new HTML file
- Copy the header and footer from an existing page
- Add your content
- Link to the new page from the navigation menu in the header
- Fork the repository
- Create a feature branch:
git checkout -b new-feature
- Commit your changes:
git commit -m 'Add new feature'
- Push to the branch:
git push origin new-feature
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- FullCalendar - JavaScript calendar library
- Pretix - Open source ticketing system
- LimeSurvey - Open source survey tool
- Font Awesome - Icons