Open Source

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. 1
    Create an account sign up if you haven't already.
  2. 2
    Find your profile — look for yourself in speakers.
  3. 3
    Click "This is me" — you'll see the button on any unclaimed profile when logged in.
  4. 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. 1
    Fork the repository fork on GitHub.
  2. 2
    Make your changes — add YAML data or improve the application code.
  3. 3
    Open a pull request — describe what you changed and why.
View on GitHub