Multi-event website for Amadeus tech conferences and community events, hosted on GitHub Pages.
Live site: https://amadeusitgroup.github.io/events/
- Amadeus Wanderloop@Erding 2026 - 10 November 2026
- Engineering Days 2026 - 29-30 April 2026
| Command | What it does |
|---|---|
/create-event |
Create a new event website (with or without sessions JSON) |
/update-event |
Update an existing event with finalized program data (from pretalx JSON or manually entered talks) |
/remove-event |
Remove an event (runs remove_event.py interactively) |
Just open Copilot Chat and use the command or describe what you want.
Prompt files live in .github/prompts/.
# Create a new event (with sessions)
python3 create_event.py sessions.json --name "My Event 2027" --slug "my-event-2027"
# Create a new event (CFP mode — no sessions yet)
python3 create_event.py --name "My Event 2027" --slug "my-event-2027" --dates "15-16 June 2027" --locations "Nice FR, London UK"
# Update an event with finalized program
python3 update_event.py sessions.json --slug "my-event-2027"
# If you don't have a pretalx JSON yet, build one manually first
python3 build_sessions_json.py --out sessions-manual.json
python3 update_event.py sessions-manual.json --slug "my-event-2027"
# Remove an event (interactive)
python3 remove_event.pySee CREATING_AN_EVENT.md for full details and options.
Each event has a config.json file that controls what's displayed on the website.
Non-technical users can edit this file directly — changes appear on the next page load.
| Field | What it controls | Example |
|---|---|---|
eventName |
Event title shown everywhere | "Amadeus Engineering Days 2026" |
tagline |
Short subtitle in the hero section | "Code. Share. Inspire." |
description |
About section paragraph | "Welcome to our annual..." |
dates.display |
Date string shown on the page | "29-30 April 2026" |
locations |
Array of hosting sites | ["Nice FR", "London UK"] |
tracks[] |
Track cards (icon, name, description) | {"icon": "🤖", "name": "AI & Data", "description": "..."} |
sessionTypes[] |
Session type cards | {"name": "Talk", "count": 42, "description": "..."} |
stats[] |
Stat cards in the about section | {"icon": "🎤", "number": "126+", "label": "Sessions"} |
organizer |
Team name in nav/footer | "DevRel" |
contact |
Contact email for mailto links | "devrel@amadeus.com" |
colors |
Brand color overrides | {"primary": "#26005a", "secondary": "#b650ff", "accent": "#ff58ac"} |
Tip: In CFP mode, tracks and session types are pre-filled with examples. Replace them with your real ones, or wait until you run
/update-eventwith the sessions JSON.
/
├── index.html # Landing page (links to all events)
├── create_event.py # 🚀 Create event (one command → full event)
├── update_event.py # 🔄 Update event with finalized program
├── shared/ # Shared assets used by all events
│ ├── styles-base.css # Common CSS (variables, nav, footer, buttons)
│ └── script-base.js # Common JS (dark mode, mobile menu, scroll)
├── engineering-days-2026/ # Example: Engineering Days 2026
│ ├── index.html # Event homepage
│ ├── program.html # Program with dynamic session loading
│ ├── styles.css # Event-specific styles
│ ├── script.js # Event-specific JS
│ ├── sessions.json # Session data (loaded at runtime)
│ ├── config.json # Event configuration/metadata
│ ├── generate_openfeedback.py # OpenFeedback integration
│ └── openfeedback.json # Generated feedback data
├── _template/ # Reference template (used by script)
├── .github/
│ ├── copilot-instructions.md # AI instructions for this repo
│ ├── prompts/
│ │ └── create-event.prompt.md # Reusable Copilot skill for event creation
│ └── workflows/
│ ├── deploy.yml # GitHub Pages auto-deployment
│ └── update-openfeedback.yml # Auto-regenerate OpenFeedback data
├── CREATING_AN_EVENT.md # Detailed event creation guide
└── README.md # This file
- Zero build step — pure HTML/CSS/JS, served as static files
- Dynamic programs —
program.htmlloads sessions fromsessions.jsonat runtime with filters (day, track, type, room) - Self-contained events — each event folder can be deleted cleanly without affecting others
- Automated generation —
create_event.pyparses pretalx data and generates everything
# Local preview
python3 -m http.server 8000
# Then open http://localhost:8000Pushing to main triggers automatic deployment via GitHub Actions → GitHub Pages.
| Token | Color | Usage |
|---|---|---|
| Primary | #26005a |
Deep purple — headings, navbar, hero backgrounds |
| Secondary | #b650ff |
Bright purple — accents, hover states, highlights |
| Accent | #ff58ac |
Pink — CTAs, badges, emphasis |
Dark mode is supported via [data-theme="dark"] selectors.