Email the Author

You can use this page to email Christian Ekrem about An Elm Primer for React Developers.

Please include an email address so the author can respond to your query

This message will be sent to Christian Ekrem

This site is protected by reCAPTCHA and the Google  Privacy Policy and  Terms of Service apply.

About the Book

Elm is a functional programming language that compiles to JavaScript, and it offers something React can't: zero runtime exceptions, guaranteed. No null pointer errors. No "undefined is not a function". If your Elm code compiles, it works.

This book is your practical guide from React to Elm. Written by a staff developer working in a production codebase with 125,000+ lines of Elm, it shows you side-by-side comparisons, real-world patterns, and honest trade-offs. You'll see familiar React patterns translated to Elm's approach—state management, side effects, component architecture—and understand why Elm makes certain choices.

But here's the real value: Even if you never use Elm professionally, learning it will make you a better developer in any language. Elm is the fastest way to truly learn functional programming—not watered-down FP patterns, but real, uncompromising functional thinking. It's stricter than TypeScript, simpler than Haskell, and more practical than academic theory.

What you'll learn:

  • The Elm Architecture (TEA)—the pattern that inspired Redux
  • How compile-time guarantees prevent entire classes of bugs
  • Pure functions, immutability, and explicit effects—FP concepts that transfer everywhere
  • When to choose Elm (and when not to)
  • How to integrate Elm widgets into existing React applications
  • Real patterns from production codebases at scale

Who this book is for:

  • React developers curious about functional programming
  • Teams dealing with production bugs despite TypeScript
  • Developers tired of debugging state management issues
  • Anyone who wants to level up their programming skills

Your React knowledge is your advantage here. If you understand reducers and immutability patterns, you're already halfway to Elm. This book meets you where you are and shows you what's possible with different trade-offs.

Whether you adopt Elm or not, you'll come away with insights that make you better at React, TypeScript, and any language where clarity matters.


About the Author

Christian Ekrem’s avatar Christian Ekrem

Christian Ekrem is a seasoned Staff Engineer with over 12 years of experience building production systems at scale. He currently works as a senior consultant at Ensō AS, and previously spent six years at Vipps MobilePay (Norway's leading mobile payment platform), where he became known as the team's "Chief Problem Solver."

During his time at Vipps, Christian changed roles multiple times without leaving the company—starting with backend development in Go and React, then switching to Android development in Kotlin (learning it from scratch), and eventually becoming the first engineer to work across both Android and backend simultaneously. This diversity of experience across platforms, languages, and problem domains gives him a unique perspective on what makes code maintainable, testable, and genuinely better.

Christian works daily in a production Elm codebase with over 125,000 lines of code at Lovdata, Norway's leading legal information provider. This real-world experience—not just toy projects—informs every comparison and recommendation in this book. He's seen Elm prevent entire classes of bugs at scale, experienced its refactoring confidence firsthand, and learned where it excels and where it doesn't.

His diverse background extends beyond tech: he's taught at a special-needs high school and worked as a film director and cinematographer. This varied experience taught him how to explain complex concepts clearly and meet people where they are—which is exactly what his book aims to do for React developers learning Elm.

Christian has presented talks on software architecture, testing strategies, and functional programming at Vipps and other companies. He's passionate about code quality, craftsmanship, and building systems that are easy to understand and change. His journey into functional programming started with exploring tail-call optimization in Go, which led him to Kotlin, and eventually to discovering Elm's uncompromising approach to immutability and pure functions. He writes about technology, functional programming, and software development at cekrem.github.io.

When he's not coding, Christian plays guitar and drums, enjoys running, and spends time with his wife and three kids. He's also involved in church planting and co-hosts the "Dønn Disippel" podcast in Norwegian.

Logo white 96 67 2x

Publish Early, Publish Often

  • Path
  • There are many paths, but the one you're on right now on Leanpub is:
  • Elm-for-react-devs › Email Author › New
    • READERS
    • Newsletters
    • Weekly Sale
    • Monthly Sale
    • Store
    • Home
    • Redeem a Token
    • Search
    • Support
    • Leanpub FAQ
    • Leanpub Author FAQ
    • Search our Help Center
    • How to Contact Us
    • FRONTMATTER PODCAST
    • Featured Episode
    • Episode List
    • MEMBERSHIPS
    • Reader Memberships
    • Department Reader Memberships
    • Author Memberships
    • Your Membership
    • COMPANY
    • About
    • About Leanpub
    • Blog
    • Contact
    • Press
    • Essays
    • AI Services
    • Imagine a world...
    • Manifesto
    • More
    • Partner Program
    • Causes
    • Accessibility
    • AUTHORS
    • Write and Publish on Leanpub
    • Create a Book
    • Create a Bundle
    • Create a Course
    • Create a Track
    • Testimonials
    • Why Leanpub
    • Services
    • AccessibilityPro (NEW!)
    • Author Quickstart (NEW!)
    • CourseAI
    • TranslateAI
    • GlobalAuthor
    • IndexAI
    • Launch Quickstart (NEW!)
    • Marketing Packages
    • PublishWord
    • Publish on Amazon
    • Author Newsletter
    • The Leanpub Author Update
    • Author Support
    • Author Help Center
    • Leanpub Authors Forum
    • The Leanpub Manual
    • Supported Languages
    • The LFM Manual
    • Markua Manual
    • API Docs
    • Organizations
    • Learn More
    • Sign Up
    • LEGAL
    • Terms of Service
    • Copyright Policy
    • Privacy Policy
    • Refund Policy

*   *   *

Leanpub is copyright © 2010-2025 Ruboss Technology Corp.
All rights reserved.

This site is protected by reCAPTCHA
and the Google  Privacy Policy and  Terms of Service apply.

Leanpub requires cookies in order to provide you the best experience. Dismiss