Ask HN: What is your favorite front end state management solution?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • mobx-state-tree

    Full-featured reactive state management without the boilerplate

  • mobx-state-tree (https://mobx-state-tree.js.org/)

    Benefits of it over mobx is data normalization with references and JSON patches which allow you sync complex state easily. Typed models are also a plus.

    Drawbacks are performance (see https://github.com/mobxjs/mobx-state-tree/issues/1267).

    Previously was using immer, which I loved because of immutability but moved off since classes and OOP didn't feel as natural as in mst.

    If I were to pick an alternative, might try redux with normalization https://redux.js.org/usage/structuring-reducers/normalizing-....

    And if I were to build a state management tool, I would prioritize a library that has

  • speaker.app

    Discontinued Speaker.app (https://speaker.app) is an encrypted peer-to-peer (P2P) group communication platform which does not require a user account to use. Users remain anonymous on the network unless choosing to personally identify themselves.

  • I prefer sticking w/ the basics and using EventEmitter.

    https://speaker.app has a UI I've been prototyping w/ this approach.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • htmx

    </> htmx - high power tools for HTML

  • Thanks for sharing this, I found this paradigm to be highly intuitive. Adding a link to the HTMX docs which also do a great job of explaining: https://htmx.org/

  • jotai

    ๐Ÿ‘ป Primitive and flexible state management for React

  • Jotai [1] is my go to, though I have never used it for anything too big.

    [1] https://jotai.org/

  • valtio

    ๐Ÿ’Š Valtio makes proxy-state simple for React and Vanilla

  • I like valtio, works w/ React or just js. Has subscribe, derive, and more.

    https://github.com/pmndrs/valtio

  • effector-react

    Business logic with ease โ˜„๏ธ

  • Actually, Svelte uses Effector for state management under the hood. You can read more about it here: https://effector.dev/. It also has bindings for other frameworks including React, Vue and Solid. Effector is a little not beginner-friendly, but once you truly understand it, Effector becomes a very powerful.

  • zustand

    ๐Ÿป Bear necessities for state management in React

  • Zustand is great: https://github.com/pmndrs/zustand

    It gets out of the way in terms of boilerplate, has a good solution for avoiding unnecessary re-renders, has tooling for deep state updates without messy syntax (immer) and strikes an overall good balance between powerful and easy to use. Cons might be that it is a bit more obscure so people might have to learn it. Also the learning curve is a bit steep. YMMV

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • wisdom

    Building better developers by specifying criteria of success (by prettydiff)

  • I use a simple 4 point system for state management:

    https://github.com/prettydiff/wisdom/blob/master/state_manag...

    I use it for an OS GUI here which fully loads in 200ms in Chrome (300ms Edge):

    https://github.com/prettydiff/share-file-systems

    When simple things, like state management, become complicated they are either over engineered or poorly planned.

  • share-file-systems

    Use a Windows/OSX like GUI in the browser to share files cross OS privately. No cloud, no server, no third party.

  • I use a simple 4 point system for state management:

    https://github.com/prettydiff/wisdom/blob/master/state_manag...

    I use it for an OS GUI here which fully loads in 200ms in Chrome (300ms Edge):

    https://github.com/prettydiff/share-file-systems

    When simple things, like state management, become complicated they are either over engineered or poorly planned.

  • robodux

    caching in redux made simple

  • Like most systems, itโ€™s all about how it is setup. Iโ€™ve learned over 5-7 years how to organize FE (with redux) code so it is readable. Also inheriting a system can be quite the burden and I could see how it was be difficult to grok.

    I also heavily leverage https://github.com/neurosnap/robodux to treat redux as a database.

    At the end of the day, redux is an event emitter (pub/sub) with a single object that stores all of your state that multiple components need to reuse.

  • platform

    Reactive State for Angular

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts