Making of an Elixir Conference

7 hours ago 2
2025-07-04

Underjord is an artisanal consultancy doing consulting in Elixir, Nerves with an accidental speciality in marketing and outreach. If you like the writing you should really try the pro version.

It all started when I visited Gig City Elixir. Or maybe it started when I did a workshop in preparation for a Code BEAM in Stockholm. But that actually started from reading Priya Parker’s book The Art of Gathering. Maybe this has been coming for a while.

I’m making an Elixir conference and it happens 10-12th of September in Varberg, Sweden. Tickets are still available at the time of writing. I figured it might be interesting to hear one data point of pulling something like this together.

I may mention sponsors, those are companies I have an economic relationship with. This post is not an ad for them and is not particularly part of any deal. This post is in a small way an ad for the conference. But really I find the process of learning what goes into making things fascinating so this is me offering a behind the scenes of my first attempt.

Seeding the idea

The idea for the conference formed in Chattanooga at Gig City Elixr and NervesConf US. The NervesConf pulled about 50 people and Gig City pulled around 150 I believe. Lovely conference, Maggie and Bruce Tate are great hosts and clearly care about making people happy, bringing in varied voices and putting on a cool thing without getting too pretentious. Love em. Also Todd Resudek offered me the opportunity, if I wanted it to use the NervesConf name for an EU event. That got wheels turning.

Still in Chattanooga, visiting Rock City in the evening, when I spoke to Andrea Leopardi of the Elixir core team and he immediately said he’d show up if I made it happen.

Poking around with some friends and acquaintances showed me I had the bones of a line-up. I bothered Saša Jurić about being a speaker and he accepted around the end of the year.

I also poked around both locally here where I live and remotely in my community for sponsorship and funding and found some enthusiasm and angles. There is a foundation that owns the local bank that invests a lot in local events. They were interested in contributing, assuming it was not-for-profit.

Essentially the core of making me confident that I could pull together speakers and sponsor money is that I’ve been operating in the Elixir community for about 7 years and I know enough people. If you want to put on an event, show up at events. Want good speakers? Know good people that give talks. It may sound simple and it kind of is. I haven’t done this with the goal of making a conference. It is more like I’ve accidentally accrued the raw materials required for a conference and I don’t have enough self-doubt to stop myself.

We pinned down the venue to be this nice classic theater in Varberg. Scheduled it after the main tourist season. A tourist-friendly town like this is nice because there is good eating, decent drinking and lots of accomodations but you can’t schedule during the busy season because everything is slammed.

The Point of No Return

Once we had enough confidence that we had a base line-up and some very likely money I bodged together a logo, website and announced the conference. All details TBD essentially. I first shared it privately for feedback and the feedback was excited. Then I put it out into my social feeds, Elixir Forum and the various appropriate channels for announcing things in Elixir Slack and Elixir Discord.

And the logo animates which was the important thing. Except on Safari on iOS, sometimes.

Keep watching, it does animate. All SVG.

Then it was a matter of starting to knock down the immediate needs.

Find sponsors, create a CFP/CFT (Call for Papers/Proposals/Talks) or whatever you call it.

I did a wait-list signup using my newsletter platform Campaign Monitor which I do not recommend. We fairly quickly reached 190-something people. Checking in with the lovely people at CodeSync who run conferences all day every day this actually sounded pretty good.

I picked up Sessionize for managing speakers because I’d used it a bit as part of a Program Committee for Code BEAM in Stockholm in the past. It seemed competent. And it is. It has awkward parts but it is so incredibly useful. Superb software, does the job, has all the features I’ve needed and very few I don’t. Pricing was manageable.

Actually, Sessionize has guided me towards good thinking in how to handle sessions and speakers. It is very explicit about internal status of a session and what it shows the speaker. It is very explicit when you notify speakers about accepting and rejecting talks.

Similarly I picked up Tito for ticketing, I checked it on recommendation from a friend. Just like Sessionize, it is a sidebar of features and once you dig in it models the domain very clearly. I have a quirk for my event. I have two conferences and you can buy a ticket to both or either. Don’t do this. It messes with messaging, design and everything. Just make one conference. Anyway, Tito supports multiple activities with separate limits on tickets sold so that if one runs out the combo ticket would no longer be available.

It integrates with Stripe and does all the stuff you’d expect. I haven’t messed with the API yet but should be doing that soon enough. I’ve definitely messed with the Sessionize API…

The website is a messy static site generator I built based on this post by Fly.io and some violence. My dev server is cruuuude. But building in a language I’m very comfortable in was efficient and when it came time to list the speakers I could just pull them from Sessionize, store that JSON data and build the speaker lists from that data. Including pulling images and all that. I will eventually do the same with the agenda when we publish it. The site will be open sourced eventually I think. I want others to be able to yoink the code for this type of thing if they want it.

I went pretty deep. If there is one thing I think I’ve done pretty well on this conference effort it is marketing. I’m an active poster on Bluesky, Mastodon and LinkedIn. And so my conference stuff has gone out there. And the API data came in handy here. Because I work across a Linux desktop and a Mac laptop day-to-day I’ve settled on Inkscape for most of my scalable graphics work. And Inkscape can be automated. In this case I made a template SVG in Inkscape, changed it into an EEx template and then just generated SVGs for every speaker which I then generated PNGs from.

Examples:

Picture of Andrea leopardi, lots of neon in the logos, title of the talk is The Umbrella and the Range  Recovering devices at scale

Not all talks were ready to be publicized even if accepted. Some speakers had been invited and hadn’t sent in their material yet as well. No problem. Sesssionize has custom fields, I added a boolean called Announced which determined if they went on the website and later another called Presentable for whether they were okay for socials. Non-presentable speakers on the website had no page about their talk and title was “To be announced…” and that worked great.

Then I oscillated between the alpha of JustCrossPost and my Buffer account for posting. But importantly I wrote a specific blurb for each speaker. I try to automate the repetitive work that is not about the content of the conference. I don’t automate the communications.

All visual design work is, for good and bad, mine. Most conceptual design work is mine as well. I’m at least getting to stretch skills that are not in my day-to-day set. I enjoy it a lot.

We are looking to use Discord for the event app. This is not a massive conference and all conference apps seem quite bad. Whova used to be kind of practical but now is very noisy. Recent Elixir conferences have used Swapcard which seems okay. I am going for low friction with Discord that most in the community already have, it enables continued connections after the event and it is really smooth. Also it is built with Elixir. I’ve considered open alternatives but that has at best the same friction as the bad conference apps. Jury is still out on how I’ll like this but AlchemyConf did that and it seemed good. A short informal poll of the opinions also gave a lot of thumbs up for Discord.

The Content

We are a single track conference which I’ve heard many people note that they are excited about. I think multi-track is just a bit exhausting with all the options and a single track means it is way more likely that people saw the same talk as you which helps conversation. With scale more tracks are essentially necessary I imagine, but we don’t have to and our venue wouldn’t support it.

Theatre stage invites showmanship and theatrics and while I can’t spoil the plans some speakers have, let’s just say the combination of venue and my encouragement to swing for the fences has made for some really interesting plans. And because the venue is a theater it is all normal for them and their technicians.

This was the interesting bit of the CFP instructions:

“We will not be taking on talks that are “Update on project X” but are fine with talks that involve new features and either how they were built or what they allowed you to do. Avoid presenting a changelog. Teach something, tell a story, blow some minds or show your work.

The space for ideas is open-ended, the venue provides undivided attention. What do you want to share?”

Telling people what a thing is not is often more useful than trying to say what it is. Editing, cutting, constraints do more to actually make the gears turn than lofty possibilities in my experience.

I reached out to José Valim to see if he wanted to show up. If he wanted to speak I would certainly have let him. But I encouraged him to come and only participate. Because I think people would have enjoyed that. Unfortunately the start of the school year in Poland threw a wrench in that plan. I hope to see some more awesome people from the community and ecosystem even if they aren’t speaking.

And I suppose that gets to the program committee. On recommendation from my then-colleague Tomie I did what I had considered doing and formed a program committee to help me make decisions. Sophie Debenedetto, Rebecca Le and Cornelia Kelinske helped me a lot in sorting through submissions and making decisions. Unfortunately most can’t make it over here for the conference unfortunately. But they were awesome. Things got reviewed, emails flowed on one-off decisions. They pushed back on things I considered doing that conflicted with the bigger ideas. Exactly what I want.

And not entirely unimportant, it gave me some social cover when we had to reject probably 45 talks, many of which I knew the speaker personally. It would have been fine. But now I didn’t have to only reference my opinions in feedback but actually could give some wider notes.

As speakers have had questions, suggestions, ideas. I tend to just trust them. I give them the possibilities, I let them know about constraints. But I’m willing to take risks with the content. I want them to try stuff you wouldn’t see at an event that is more careful, more conventional. Most people that choose to present are creative and I want to see that creativity.

The talks

We’ve gotten so many good ones. We have the Nerves Car, we have Nerves hardware development, we have a new perspective on HCA Waterpark one of the wildest Elixir systems ever built, we have ORMs for Git which is delightful nonsense and we have someone giving a completely fresh-out-of-bootcamp view of Elixir.

And several I’m not talking about because I really shouldn’t.

Oh, and this is probably the last stop on Sasa’s “Tell me a story” tour. When a talk is described as a three-act monodrama that is as the kids say a vibe.

I don’t think I have a ton of interesting stuff to share here. Sponsorship sales is just sales. You are selling a mix of brand exposure, developer interactions and for the right type of company potential customers. It all hinges on network, trust and your skills at prospecting and reaching out. My sales have all been in the realm of network and trust. Many of the sponsors are doing it because they want the event to exist, I really hope it is also beneficial in the ways it can be for them.

The Locals

The commerce people of the “city” of Varberg were quite excited when I said I could probably pull 150 developers from outside of Varberg in for a 2-3 day conference. Aside from endorsements for my stipend request with Sparbanksstiftelsen I haven’t really been able to get any public sector money, in spite of being a not-for-profit. Which is a bit disappointing. The people I’ve been dealing with have been great. They’d love to give me a bag of money or cut my venue bill in half but they don’t call those shots.

Some students at the local campus are potentially interested in attending. .Net devs the lot of them but I hope some do. And some of the campus alumni that are now professional devs in their early years are certainly coming. I’ve reserved some tickets to ensure we get some visitors that are fully local. I want the mixing. I need more Elixir in the groundwater here.

That’s a big reason I’m doing this. I engage with the local tech scene but most of it is incredibly different from what I do. They operate locally or operate some niche I’m not in. Lots of .Net around. But there are plenty of people interested in learning new stuff, in widening horizons and there are people who want more startup spirit in town. And I can bring a certain part of open source, a builder community and plop them down here for a couple of days. I want to connect my local community to my global community. Since I’m the loudest Elixir developer in Sweden I’d love for Varberg to weirdly end up being the Elixir capital of Sweden.

It should also give me some practice for running other types of events that we want to do with the not-for-profit, Goatmire International.

The Remotes

It is awesome to see people coming from all over. We have people from Nerves JP, the japanese Nerves community, coming in to speak. We have New Zeeland and Australia. We have the US of course. We have lots of Europe represented.

There is no rhyme or reason to this in terms of practicalities. I suppose people trust me from my long time and various contributions in the community. And the vibe of the conference must have hit a good spot. The ticket price is low but travel and accomodations are a whole thing. So people are definitely putting their money where their mind is and just giving this a shot.

We aren’t doing a virtual event, we plan to film everything and release videos for the global community. I don’t want an event with some split of attention towards a livestream. I want

The Dread

I hope I don’t fuck it up.

That’s it. I am not a big worrier thankfully. But this is a lot, the thing feels big to wrangle.

The Advisor

We started out having our friend and colleague Tomie Lee as our event advisor. They’ve done this type of thing for over a decade before becoming a programmer so they were a superb help. Then they got a chance to try a great job and went on leave to do that. That’s when we brought in Helene Mattisson. I know her husband from the community and saw her post about doing events and things. Reached out and she has been sanity-checking us ever since.

Every two weeks we have a meeting and figure out if we are missing anything. She has been immensely valuable, easy to work with and a very good investment for our sanity.

We don’t know events, we don’t have the learned experience. Getting some of that, borrowing those instincts and mental check-lists. Make sure you have someone that can advise you.

The Partner

My wife, my love, my diligent, awesome, capable partner in life, crime and business. She does the admin, the money-wrangling, the figuring out of taxes and all the nasty bits that must work. She makes phone calls she doesn’t want to make just to take them off my plate. She joins me in meetings with the theatre, she helps with all the practical stuff, she gives feedback on visual stuff.

I bring the headache of making and event happen to our doorstep and she just digs in. Alright, she’ll let me know I’m making our lives harder again. But she is incredibly game to dare things and that hasn’t come easy.

Couldn’t do it without her.

The Tangibles

Physical event. Can’t just do virtual stuff.

We already make shirts. Our Open Swag Platform is the most modest of modest productions. We sell high-quality Elixir and Nerves shirts currently. With more projects coming soon. So we work with a local print shop for those and will use them for the shirts for the event.

The range of cost for a good vs bad shirt is ridiculously wide. You can do DTG (Direct-To-Garment) prints on cheap blanks and get shirts that cost essentially nothing. The print will wash out as tiny rubbery particles at 40C in the machine. I find this unacceptable. I don’t want shirts like that. They make me angry.

We also want Fair Trade and ecologically sane stuff.

The shirts we’ve made for Underjord have held up for 3-4 years without really deteriorating. The blanks (base shirts) we use cost us around $20. Full color prints that last need to be some kind of transfer so that brings us near $30 for making the shirt if we make ~200 of them. We could compromise on the blanks and still get a “really good one” that I don’t like as much for about $9 per shirt. Nah. The thing I am willing to adapt is the print. You can make a single-color high quality screen print much cheaper than the transfers and since conference shirts are a bulk order we can do that efficiently. This is different from what we need for Oswag. So shirts land around $23 in cost per shirt. And they should last.

If you are unaware of this stuff as I have been you’ll pick up a DTG on some “recommended” blanks at Printful or Spreadshirt and get cheap shirts that die in the wash. Cheapest is to combine a cheap shirt and screen printing in bulk, that’s how you get really cheap marketing shirts where the shirt is trash but the print might hold up quite well.

Same print shop will also do badges, some banners and roll-ups for branding around the venue. I have a lot of design to pin down and I need every sponsor logo ready to do so. This is the real hard work of this type of thing. Remembering and making the effort until the things can be shipped.

We also have plans that I hope can happen that I won’t get into too much yet. But let’s just say NervesConf is an embedded conference and that’s a very tangible business.

The Execution

We have more prep to do but we also have a lot of execution and that’s the most exciting bit. When the half-crafted, half-cobbled vessel we’ve built goes into the hands of attendees and speakers and we just get to watch as the results take shape. While we put out any practical fires in the background. Lots of eyes, lots of beholding, at that point we can just hope for beauty.

I already know the speakers and many of the attendees and I know they’ll make an event that is a blast to hang out at. I have no idea how it will feel to be on the organizer side for 3 days straight. I hope all our fun plans come together. We have plans for the social bits that are still in flux, we have plans for bonus events that are not pinned down yet. It is incredibly fun how everyone is so game to collaborate, help and make things happen.

Hopefully this makes some of you consider organizing things. Be mindful of your energy. These things are a lot. We might regret it. We might repeat it. We don’t know. I’m excited to find out.

You can reach me via electronic mail [email protected] or on the fediverse @[email protected]. Thanks for reading.

Underjord is an artisanal consultancy doing consulting in Elixir, Nerves with an accidental speciality in marketing and outreach. If you like the writing you should really try the pro version.

Note: Or try the videos on the YouTube channel.

Read Entire Article