ReactFoo Mumbai

ReactFoo Mumbai

On React, alternatives to React, ReactNative and front-end engineering

Mihir Khatwani


Let's write baby redux

Submitted Mar 29, 2018

Redux is probably the most misunderstood library out there. A lot of big serious project codebases which use Redux end up looking like the Redux Documentation’s toy code examples. To para-phrase one of the Redux core contributors, the documentation examples are just for the sake of starting off with Redux and do not reflect a pattern in which Redux should be used in. In the workshop we will write our own baby redux clone and come up with different approaches/patterns it can be used for various use cases. The goal is to understand what redux is at a fundamental level, how it can be used more effectively as per use cases and how to be more creative while using it.


Everyone works in pairs.

Breakdown of Workshop activities

  • Pairing up of participants
  • A brief overview of 2 Design patterns
  • Writing baby Redux clone
  • Come up with different patterns it can be used in
  • Discussion about the patterns in the documentation code examples
  • Using your own Redux clone in an existing toy small react app (will be given)
  • Breaking down some of the commonly (based off of participants picks) used Redux libraries
  • Implementing 1 small common redux library per pair


Pre-Requisite of Participants:

  • Experience working with React
  • Redux experience optional

A computer with following things setup

  • Node (LTS)
  • Git
  • Github Account
  • Text Editor
  • Internet Connection

Speaker bio

To ramp-up a team of backend Java developers to start quickly contributing to a frontend React Redux project, I wrote a wrapper on redux which makes working with a React Redux App very similar to a Spring Boot backend project. Also a general hatred of writing code with if-elses and non pattern matching switch cases lead me to use Redux in various different structures. Both of the above activities lead me exploring Redux internals quite a lot.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}