Michel Weststrate

Libraries

immer (github.com)9880
v3.2.0
Aug 02, 2019
Create the next immutable state by mutating the current one.

Video Guides & Talks

Combining GraphQL + mobx-state-tree (youtube.com)
May 28, 2019
GraphQL and mobx-state-tree are match made in heaven; both are a model first oriented technologies. GraphQL optimizes data fetches and mutations. Adding mobx-state-tree to this mix, makes this model even richer: It allows client only state, actions and derived data to be mixed into our data models.
MobX The Journey (youtube.com)
May 01, 2019
In this talk I will both reflect on the product and my journey into the Open Source Software world.
Immer, Immutability and the Wonderful World of Proxies (youtube.com)
Nov 15, 2018
Immer is a tiny package that allows you to work with immutable data structures with unprecedented ease. It doesn't require learning new data structures or update APIs, but instead creates a temporarily shadow tree which can be modified using the standard JavaScript APIs. The shadow tree will be used to generate your next immutable state tree. This shadow tree is maintained using Proxies.
State management beyond the libraries (youtube.com)
Nov 02, 2018
Many battles have been fought over what is the best way to do state management. A gazillion of strategies and libraries are out there. So,.. it is time to take one step back. Why is state management relevant in the first place? What problems does it solve? For example, many debates are about mutability or immutability. But then Michel proposed that the more fundamental question to ask is: identities or values? With these concepts in mind, Michel took a look at several libraries and frameworks and recognize the patterns.
Immer Immutability made easy (youtube.com)
May 25, 2018
Immer is a tiny package that allows you to work with immutable data structures with unprecedented ease. It doesn't require learning new data structures or update APIs, but instead creates a temporarily shadow tree which can be modified using the standard JavaScript APIs. The shadow tree will be used to generate your next immutable state tree. Join this talk to see how to write your reducers in a much more readable way, with half the code and without requiring additional large libraries.
    There and back again: grokking state and data (youtube.com)
    Apr 18, 2018
    Many teams have been discussing on whether to go the immutable or mutable state route. Flux or MVC or MVVM? Redux, MobX or Apollo? Instead of answering the question, in this talk we will look at JavaScript code on a more fundamental level: How do data structures work in JavaScript. What assumptions can be we make if we treat them to be immutable? Or mutable? How can we express concepts like identities, references, collections, mutations, derivations in either case? And can we bent the rules between the two? This talk will provide you a deeper understanding of the difference between state and data.
    Michel Weststrate: React, But For Data (youtube.com)
    Oct 02, 2017
    React and its component model is nowadays the most appealing abstraction to declaratively describe user interfaces. The core concepts are so powerful that we can apply them outside the DOM, like in React-VR, Sound manipulation, games etc. In this talk I will demonstrate that all the core ideas powering React are so powerful that we can even translate them to a completely different field: state management. MobX-state-tree applies these very same concepts to make data management declarative, elegant and easy to reason about.
    Next generation state management (youtube.com)
    May 23, 2017
    Last years there have been great developments in state management libraries. Both Redux and MobX sprung from the React community and provide stand-alone, generic state management solutions. Both have gained big in popularity, and both have their own strengths and weaknesses. What can we learn from both approaches?
    Complexity: Divide and Conquer! (youtube.com)
    May 07, 2017
    "Reactive programming" still sounds scary to many developers. As if it is an elevated way of thinking, only accessible to the chosen few. Nothing is less true! It is the most natural way to look at programming problems. You just might not realize it yet! In this talk, Michel will demonstrate that many complex UI problems, such as form validation and routing, can all be seen as '*actions* that change *facts* which leads to *reactions*'. And as soon as we start distinguishing those concepts in our applications; our code will become more declarative, more concise and less imperative.
    MobX: The Quest For Immer Mutable State Management (youtube.com)
    Nov 07, 2016
    At React Amsterdam, you can meet its full-stack lead developer Michel who strongly believes in pragmatic, agile and the-simplest-thing-that-could-possibly-work programming.
    Real World MobX (youtube.com)
    Oct 03, 2016
    At Mendix we use MobX to manage the state of our visual enterprise application studio. In this talk we will take a look behind the scenes and see how MobX simplifies concerns like authentication, data fetching and routing. The strong decoupling of state and UI helps us to iterate on our UI more quickly. The architecture of the studio is pluggable and we will see how MobX helps integrating external producers and consumers of state into the product. In the end, we believe that this approach results in a code base that is sane and accessible. In which we get things done quickly.
    State Management is Easy (youtube.com)
    May 26, 2016
    State is the heart of each application and there is no quicker way to create buggy, unmanageable applications then by producing inconsistent state. Hence many state management solutions try to restrict the ways in which you can modify state, for example by making state immutable. But this introduces new problems; data needs to be normalised, referential integrity can no longer be guaranteed and it becomes next to impossible to use powerful concepts like prototypes.

    Articles & Tutorials

    UI as an afterthought (michel.codes)
    Feb 05, 2019
    A question people ask me regularly: “How do all the new React features (context, hooks, suspense) affect how we build (web) apps in the future? Do they make state management libraries like Redux or MobX obsolete?” With this post, I’ll try to answer that question once and for all!
    MobX 4: Better, simpler, faster, smaller (medium.com)
    Mar 12, 2018
    So, in this blog post I’m just going to highlight the most compelling new features.

    Books & Guides

    MobX Quick Start Guide (packtpub.com)Get it on Amazon
    Jul 26, 2018
    Apply functional Reactive programming for simple and scalable state management with MobX

    Podcast Episodes

    Immer & MobX State Tree feat. Michel Weststrate (devchat.tv)
    Mar 29, 2018
    In today’s show, the React Native Radio Host, Nader Dabit and Spencer Carli speak with Michel Weststrate about Immer and MobX state tree. Both libraries are written by Michel. Michel does open source and tech leads about Mendix. Mendix is an enterprise software vender that Michel works for currently. Michel and React Native Radio discuss MobX State Tree and Immer libraries, and other areas of Mendix.

    Courses & Video Series

    Manage Application State with Mobx-state-tree (egghead.io)
    Jan 08, 2018
    In this course, Michel Westrate - Creator of Mobx - will teach us how to model application state after your problem domain with Mobx-state-tree (MST)
    Manage Complex State in React Apps with MobX (egghead.io)
    Aug 01, 2016
    MobX is designed to enable building web applications with a complex data model in an intuitive and very performant manner.