8:05AM–8:50AM: Evan Czaplicki — Keynote

Evan created Elm. He works at NoRedInk, a company with about 100k lines of Elm in production that have never thrown a runtime exception. He is an open source engineer there, developing the language, tools, and libraries full-time.

9:00AM–9:20AM: Jonas Coch — Building a Slippy Map Library in Pure Elm

Web applications often need interactive UI elements, e.g. slippy maps. Currently one has to interface with existing JS libraries with some trickery to have a map in an Elm app.

In this talk we will explore a different approach: a slippy map library written in pure Elm. You will hear about the initial motivation, see how it is implemented, learn about API decisions and get to know how to use, customize and extend a slippy map.

This will not only give you an additional UI widget in your Elm tool belt, but will hopefully teach you about how to build and use stateful UI elements in Elm in general.

Jonas Coch is a frontend webdeveloper at iosphere, living in Cologne, Germany. He used to hack arounds IE 6 bugs, fell in love with XSLT and now likes Elm. He writes code to show data on web-maps, introduced Elm at his workplace and wrote elm-search, a search engine for all exposed values of all published packages.

9:20AM–9:40AM: Morning Break

9:45AM–10:30AM: Tessa Kelly — Accessibility with Elm

Learn about accessibility, the elm-html-a11y library, and delve into patterns enforcing good development habits.

Elm’s core library makes writing HTML a lovely experience, but making that HTML accessible can still be hard. The WAI-ARIA spec provides many modes of communication and interaction for users–but these largely attribute-based avenues are easy to ignore. Adding type-safety, an exhaustive set of attributes and tags, and friendly function names, elm-html-a11y makes writing accessible HTML nicer.

Tessa Kelly is a software engineer at NoRedInk, an edtech company helping teachers teach grammar and writing, where she builds out new features in Elm, writes the occasional blog post, and never needs to argue about the Oxford comma. Tessa holds a BA in mathematics from New York University, where she minored in history and Middle Eastern studies.

10:40AM–11:00AM: Murphy Randle — The Importance of Ports

The larger an Elm application grows, the more likely it is that interaction with unsupported Web Platform APIs, or interaction with 3rd party Javascript libraries will be necessary. Elm offers a feature called “ports” for passing information back and forth between Elm and JS safely.

But ports are often misunderstood and underutilized. Ports are asynchronous communicators, and the tendency is to think of them as another form of AJAX request. But thinking of them in that way leads to an incorrect understanding of their power. A correct mental model for ports, and an understanding of the power available they offer when paired with semantic data will be presented in this talk. Hopefully, by the end everyone will have a smile on their face and new superpowers in their brain.

Murphy is a father of two. He comes from a background in feature film animation, but he is now a professional Web engineer. He’d like to give you a hi-five.

11:00AM–12:30PM: Lunch

12:35PM–12:55PM: Luke Westby — Putting the Elm Platform in the Browser

I wanted it to be easier for folks to try the Elm platform and share it with each other, so I made Ellie and put it in the browser! Since its release in January of this year people have shared about 5000 revisions, but this is only the beginning. I want you all to share in my appreciation for this community and my desire for it to grow, so in this talk I’m going to share the life story of Ellie. You’ll feel like you were there on the day Ellie was first released, take an adventure through some of its inner workings, and learn exactly where Ellie is headed and what we can do together to bring more tools like it to the community.

Luke Westby is an engineer at NoRedInk. He is the creator of the browser-based Elm editor Ellie and an active member of the Elm community. He loves contributing to the Elm community by speaking about the language, answering questions in Slack, writing blog posts, and attending the Chicago Elm Meetup.

1:10PM–1:55PM: Jeremy Fairbank — Solving the Boolean Identity Crisis

While powerful in its simplicity and important to computation, the boolean can be extremely limiting in Elm applications. In this talk, we will briefly explore the history of boolean logic in computation and look at how booleans can become misused in Elm. We will look at examples where booleans obscure the meaning of code, make code harder to maintain, and hinder usability for our teammates and users. You will learn how to harness union types to write cleaner, clearer code. More importantly, you will learn how to place usability at the forefront of the APIs and UIs you build.

Jeremy is a web developer with a master’s degree in computer science. He works for Test Double, helping improve how the world builds software. He has many years of experience in front-end development and is passionate about its future, taking that passion to the world of Elm too. He is currently authoring a book on Elm with The Pragmatic Programmers.

2:10PM–2:30PM: Peter Zingg — Activate Your Interface with CSS Animations

Have you wanted to add interface features to your Elm app like accordions, expandable help boxes and permanent and temporary notifications (AKA “alerts” or “flash” messages) but haven’t found a useful or general-purpose Elm library? Fret not, you can roll your own or adopt the modules from this talk!

At this talk you will learn how the development team for an Elm SPA used CSS styles and transitions in cooperation with Elm’s Html.Keyed and Html.Events modules to make it happen.

Peter has been using Elm in production on a single-page app, learning from scratch, since December 2016. He has been a coder since the dawn of modern programming languages (Dartmouth BASIC in 1968), and finds Elm to be as nice a revelation for the Javascript era as Ruby on Rails was for the C++ era.

2:30PM–3:00PM: Afternoon Break

3:00PM–3:20PM: Andrey Kuzmin — Mogee or how we fit Elm in a 64×64 grid

Mogee is a side-scroller that I created with my wife Nadya in three days for the #lowrezjam 2016. Since then we’ve been working on this game on our free time: added a music theme and improved the visuals.

You will learn how to evolve a simple time-travelling Mario example into a full fledged game. Even though Elm makes it easy and joyful, there are a few challenges to overcome:

In the end you will witness yet another milestone of our game, and it’s going to be remarkable!

Andrey is a frontend engineer at SoundCloud. His journey into Elm was through programming games, most notably elm-flatris and elm-street-404. The latter got him interested in WebGL and then he became a maintainer of the library. Apart from work, he enjoys live music in Berlin and is a yoga newbie.

3:30PM–3:50PM: Tereza Sokol — If Coco Chanel Reviewed Elm

What would Chanel say if inquired about the design choices of Elm? How do packages resemble wardrobes? What makes a good outfit and why is it relevant for you? The questions are many and seemingly nonsensical, but from the right perspective, the fashion and software industry are more alike than most would think. In this talk, we’ll examine these parallels in order to explore the nature of design.

Tereza is an engineer at NoRedInk working on the Elm frontend as well as the developer of elm-plot, a plotting library written purely in Elm.

4:00PM–4:20PM: Richard Feldman — Teaching Elm to Beginners

Richard is the author of “Elm in Action” from Manning Publications, and the instructor for the Frontend Masters 2-Day Elm Workshop. When he’s not writing about Elm, teaching Elm, speaking about Elm, or co-hosting the San Francisco Elm meetup, he likes to take a break from his job at NoRedInk (where front-end programmers spend almost almost all their coding time writing production Elm code) by kicking back and working on some of his open-source Elm projects.

Some have said he’s “into Elm,” but he’s not sure where they got that wild idea.