How to Contribute
ElixirEvents is open source and built by the community. You can add events and talks, improve the codebase, or claim your speaker profile.
Adding Events, Speakers & Talks
All event data is stored as YAML files in the priv/data directory. To add or update something, edit the YAML and open a pull request. Most of the current data was AI-scraped and needs cleanup — wrong speaker bios, placeholder abstracts, missing topics on talks, incomplete event details. Corrections are very welcome.
Directory Structure
priv/data/
topics.yml # Global topic definitions
speakers.yml # Speaker profiles
venues.yml # Venue information
organizations.yml # Organizations
<series-slug>/
series.yml # Event series info (e.g. EMPEX, ElixirConf)
<event-slug>/
event.yml # Individual event details
talks.yml # Talks for this event
cfp.yml # Call for proposals (optional)
sponsors.yml # Sponsors (optional)
schedule.yml # Schedule (optional)
roles.yml # Organizer roles (optional)
YAML Examples
Add an Event Series
Create a new folder
priv/data/<series-slug>/series.yml
name: "My Conference"
slug: "my-conference"
kind: conference # conference | meetup | retreat | hackathon | summit | workshop
frequency: yearly # yearly | monthly | quarterly | biannual | irregular | once
language: en
website: "https://myconference.com"
color: "#805AD5"
Add an Event
Create
priv/data/<series-slug>/<event-slug>/event.yml
name: "My Conference 2026"
slug: "my-conference-2026"
kind: conference
status: announced # announced | confirmed | ongoing | cancelled | completed
format: in_person # in_person | online | hybrid
start_date: "2026-09-15"
end_date: "2026-09-17"
timezone: "America/New_York"
language: en
location: "New York, NY, USA"
website: "https://myconference.com/2026"
color: "#805AD5"
Add Talks
Create
priv/data/<series-slug>/<event-slug>/talks.yml
- title: "Building Real-Time Systems with Phoenix"
slug: "building-real-time-systems-with-phoenix"
kind: talk # keynote | talk | workshop | panel | lightning_talk
level: intermediate # beginner | intermediate | advanced
language: en
duration: 40
abstract: "A deep dive into..."
speakers:
- josevalim # Speaker slug from speakers.yml
topics:
- phoenix # Topic slug from topics.yml
- liveview
recordings:
- provider: youtube
external_id: "dQw4w9WgXcQ"
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Add a Speaker
Add an entry to
priv/data/speakers.yml
- name: "Jane Smith"
slug: "janesmith"
headline: "Senior Engineer at Acme"
bio: "Elixir enthusiast and open source contributor."
website: "https://janesmith.dev"
social_links:
- platform: github
url: "https://github.com/janesmith"
- platform: twitter
url: "https://twitter.com/janesmith"
- platform: linkedin
url: "https://linkedin.com/in/janesmith"
Add a Topic
Add an entry to
priv/data/topics.yml
- name: "Machine Learning"
slug: "machine-learning"
description: "ML and AI applications in the BEAM ecosystem"
Code & Application Improvements
This is a hobby project, built with a lot of AI assistance. The code works, but it doesn't always follow idiomatic Elixir patterns. If you see something that could be better, please open a PR. Here are some areas we'd especially appreciate help with:
Testing
Test coverage is thin. Integration tests, context tests, LiveView tests — all of it needs work.
Idiomatic Elixir
Refactoring towards more idiomatic patterns, better use of contexts, cleaner pipelines, that sort of thing.
UI & UX
Better responsive layouts, accessibility fixes, design polish. If something looks off on your device, we want to know.
Features & Bug Fixes
Bug fixes, new features, performance work. Check GitHub issues or open one to discuss your idea.
Claim Your Speaker Profile
Already in the directory as a speaker? Claim your profile so you can edit your bio, social links, and keep things current.
-
1
Create an account — sign up if you haven't already.
-
2
Find your profile — look for yourself in speakers.
-
3
Click "This is me" — you'll see the button on any unclaimed profile when logged in.
-
4
Wait for approval — a maintainer will review your claim. Once approved, you can edit your profile from your account.
Getting Started
The standard fork-and-PR workflow:
-
1
Fork the repository — fork on GitHub.
-
2
Make your changes — add YAML data or improve the application code.
-
3
Open a pull request — describe what you changed and why.