It's not a library. It's a simple pattern to manage state in your web applications.

Think Redux, MobX, Cerebral, React Context, etc. but without having library imports everywhere and being tied to a framework API. Instead, just plain functions and objects.

All you need is a simple stream library such as Flyd or Mithril Stream in one place to implement the pattern. You do not need anything else, not even Meiosis itself. You could even implement the stream yourself with a handful of lines of code. Zero dependencies!

Easily use the pattern with your favourite view library: React, Preact, Mithril, lit-html, and so on.

Ready to have a closer look?

Read the Documentation to learn the pattern.

➡ Don't want to setup Meiosis yourself? meiosis-setup is available for your convenience.

Ready for More?

Why the name Meiosis?

I picked the name Meiosis for three reasons:

  1. it's a biology term for a type of cell division; this is an analogy to the idea of dividing your application into smaller pieces;
  2. it's a figure of speech that intentionally understates something or implies that it is lesser in significance or size than it really is, meaning that this is meant to be small, humble, and not replace what people use, just improve upon it; and
  3. it's a relatively unique name in the JavaScript world, thus making it easy to find information using search engines.


Meiosis is the result of a whole adventure of exploring other architectures. Credit goes to their authors; I am grateful for their work and that of their respective communities.

Meiosis is developed by foxdonut (@foxdonut00) and is released under the MIT license.