Build Web Apps In A Delightful Language

Elm is rapidly changing the front-end game! This course will quickly get you up to speed on a modern, reliable way to create web apps. Using the latest version of Elm (0.18), we'll incrementally build a dynamic web app so you see how everything fits together. Come discover what a delight it is to write reliable code that stays well-factored and easy to maintain as your web application grows.

Elm is ready for prime time. The question is: Are you ready for Elm?

Early Access Price!

Evan czaplicki
“Great ramp up from total beginner to building apps and having fun!” — Evan Czaplicki, creator of Elm
Matthew machuga
“A very practical, hands-on approach to learning Elm. Great course overall!” — Matthew Machuga

Learn the Pragmatic Way

In this course we follow a project-based approach to learning how to build Elms apps from start to finish. By building a real project with real code from scratch, you'll come away knowing how to build your own Elm apps and have a deeper understanding of both the "how" and the "why".

Typically we don't release a video course until the entire course has been filmed and post-produced. Unfortunately, that means a lot of waiting on your part. So we're trying something different this time. We'll be incrementally releasing groups of video modules as they're ready. How's that for being agile?

The final course will include at least 22 modules:

  • 1. Introduction and Setup (watch now)
  • 2. Hello, Elm! (watch now)
  • 3. Compiling and Running (watch now)
  • 4. Calling Functions
  • 5. Defining Functions
  • 6. Rendering HTML
  • 7. Not Your Father's Type System
  • 8. Currying for the Curious
  • 9. Modeling Application State: Records
  • 10. Type Aliases
  • 11. Mapping Over HTML Lists
  • 12. Updating the Model via Messages
  • 13. The Elm Architecture
  • 14. Summing Points: Fun with Lists
  • 15. Intro to Effects and Commands
  • 16. Fetching Data From a Backend API
  • 17. Decoding and Encoding JSON
  • 18. Failures, Maybe?
  • 19. Posting JSON To a Backend API
  • 20. Reacting To Input Fields
  • 21. Multi-Page Design
  • 22. Wrap Up

For Experienced Programmers

Looking to modernize your front-end development skill set? We designed this course for you! To respect your time in the videos, we assume you're already fluent in HTML, CSS, and another programming language. However, we don't assume you have prior experience with functional programming or Elm. If you're already using Elm in earnest, then depending on your experience this course may not be a good fit for you.

We aim for 100% satisfied developers, so if this course turns out not to be a good fit for you, we'll gladly issue you a 100% refund.

Meet Mike & Nicole

Mike and Nicole

Howdy, folks! Mike here. I love to create stuff and teach what I've learned. Over the past 20 years I've taught and used many languages to develop real applications, but there's a quality to Elm that feels special. I discovered it in late 2014 when looking for something fresh and fun to learn over the holidays. I'm as excited about Elm now as I was back then. Elm is what finally got me into functional programming. It made me a better programmer. And so I naturally can't help but want to share it with you!

Together Nicole and I own and run The Pragmatic Studio. We'd love to have you join us in the Studio for this great course! Learn more about us…

Everything You Get

  • 22 Videos

    Access to streamable and downloadable, DRM-free videos on any device.
  • Technical Notes

    Each video has a corresponding set of textual notes with bonus material and up-to-date tips and tricks.
  • Source Code

    Includes starter files, stepped versions of the app for each module, and all the source for the final app.
  • Instant, Never-Ending Access

    No monthly subscription or time limit. Revisit all the material whenever you want.

Early Access Price!

What Is Elm?

Elm is a functional programming language that compiles to JavaScript and runs in the browser, designed and developed by Evan Czaplicki.

Why are we so excited about Elm? First and foremost, it's designed to be fun and friendly to use. Indeed, Elm upends the notion that functional programming is only accessible to mad scientists and academics. With its clean and readable syntax, world-class tooling, and friendly compiler, Elm is truly a delightful language.

Don't let its friendly face fool you though; Elm is also incredibly powerful and ready for the biggest projects. The Elm Architecture helps you create complex, modular web apps with code that stays easy to maintain as you add features. Toss in great performance, no runtime exceptions, and JavaScript interop, and you've got a super-charged way to produce reliable, scalable, and maintainable web apps!

But what we love most about Elm is that you can actually build practical stuff with it quickly, which is exactly what we do in this course.

Free Update for Alumni

If you bought the previous version of this course, then this update is absolutely free! Simply go to your account and you'll see the new course "Elm: The Pragmatic Way". We've replaced the previous version which was titled "Elm: Building Reactive Web Apps". Enjoy!

Can we ask a favor? We've put hundred of hours into updating this course, including adding several new videos on advanced topics. We would be very grateful if you would help spread the word about this course. Thanks!

Reviews Of The Previous Version Of This Course...

Mike gehard
Love this Elm tutorial. Time to write front end code again since I don't need to use JS.” — Mike Gehard
Ian taylor
“...loving the course on @elmlang! finally getting my head around this awesome #WebDev language!” — Ian Taylor
Jake trent
“A great, practical introduction to Elm. Straightforward with a great ease-in approach to new concepts.” — Jake Trent
Vitor capela
“This is a perfect, succinct introduction that helps cement the idea that Elm is a usable language for the day-to-day.” — Vitor Capela
James macaulay
Everything was explained really well, working up from very simple foundations. This course is very approachable for just about anyone!” — James MacAulay
Misha moroshko
“Well done! This course is a great value for the money! It was straight to the point for developers with Javascript knowledge.” — Misha Moroshko
Denis ricard
“I looked at the Elm documentation and was lost, but with this course, I got a good base. I like that the incremental approach lets you take in the various concepts one at a time and build on them. I just fell in love with this FRP language and its way to build web apps.” — Denis Ricard
Philip poots
“Mike Clark is an excellent teacher. He explains the concepts clearly and concisely... He introduces everything incrementally and at no point did I feel overloaded. Quite the opposite, there were a number of times when he displayed the uncanny ability to read the questions arising in my mind while going through the material...” — Philip Poots' Full Course Review

Read more reviews →