HomeBlog

Welcome to ElmForReactDevs

Are you a React.js developer looking to expand your skills and harness the power of Elm?

Look no further than ElmForReactDevs a series designed to help React.js developers seamlessly transition into the world of static types!

Hello World!

I'm offering 1:1 coaching and mentoring sessions through Patreon

Starting in 2017, I experienced first hand the journey of switching from React development to Elm fulltime.

And it completely changed the way I think about programming.

Most recently I was challenged with hiring Elm engineers to help rewrite a React app in Elm.

Finding Elm developers was tough!

I want to help more React developers better understand elm and static typed purely functional languages.

I saw again and again some of the same stumbling blocks and lightbulb moments 💡

Those of which I hope to cover here in a series of articles and videos.

ElmForReactDevs is here to help other JavaScript and React developers get up to speed on Elm.

And along the way learn functional programming concepts and patterns

If you like to learn more, checkout my Patreon.

You can help support the project by subscribing to theYouTube Channel.

In my experience, there are 3 pillars to Elm mastery:


Here I will share the tools and techniques I've acquired over the years working with Elm at various startups across industries from HealthTech saving lives to music and live streaming, and more.

Hopefully this content helps you start to think in Elm and you can begin to use it in your personal and professional lives

By nature Elm is very different from React.

But some things are also very similar.

In the end they're both JavaScript frontends for building web applications.

And both are great at creating declarative UI's

Paired with Redux, there are even more parallels like: unidirectional data flow, data normalization and centralized state

  • Single source of truth
  • read-only state
  • updates from pure functions
  • immutability

"React is a library.", Elm however is not. It's a language that compiles to JavaScript.

Thankfully it's a rather small language and you can learn the basics quickly and build robust applications with a handful of patterns

Coming to Elm some things I've encountered during trainings that might be hard to grasp at first like routing, recursion, pattern matching, and fancy terms like "functor". They're not as common in the JavaScript ecosystem.

"What the heck is a Msg?"

"What's a functor?"

"What is point-free style?"

"How do you make reusable components?"

"What do you mean we don't use components?"

"How do I use this JavaScript library with Elm?"

"How do you do multipage routing?"

"How does ajax and fetch() work in Elm?"

Elm is very idiomatic and pattern heavy.

So once you learn some of these patterns and practices you'll be well on your way to being effective.

I'm here to help you bridge the gap.

You've been using functors this whole time!

I'm not saying "Elm will make you a better programmer", but I'm not not saying it either. ;)

teaching reactTeaching React.js at UCF Coding Bootcamp circa 2016.

Hi I'm Dwight

Elm and functional programming changed my life.

I've been making web applications for nearly a decade, and Elm makes the process of building robust and reliable applications easier.

It's been my pleasure to work with such a friendly language, and to learn from many talented people across different industries.

Functional programming is fun!

You can help support the project by becoming a Patron.

As well as by subscribing on YouTube.

I'd love to help you on your functional journey!