Alternatives to MobX logo

Alternatives to MobX

Relay Framework, Knockout, GraphQL Cache, Flux, and Apollo are the most popular alternatives and competitors to MobX.
457
378
+ 1
111

What is MobX and what are its top alternatives?

MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP). React and MobX together are a powerful combination. React renders the application state by providing mechanisms to translate it into a tree of renderable components. MobX provides the mechanism to store and update the application state that React then uses.
MobX is a tool in the State Management Library category of a tech stack.
MobX is an open source tool with 22.8K GitHub stars and 1.5K GitHub forks. Here’s a link to MobX's open source repository on GitHub

Top Alternatives to MobX

  • Relay Framework

    Relay Framework

    Never again communicate with your data store using an imperative API. Simply declare your data requirements using GraphQL and let Relay figure out how and when to fetch your data. ...

  • Knockout

    Knockout

    It is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), it can help you implement it more simply and maintainably. ...

  • GraphQL Cache

    GraphQL Cache

    A custom middleware for graphql-ruby that handles key construction and cache reads/writes transparently. ...

  • Flux

    Flux

    Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code. ...

  • Apollo

    Apollo

    Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes. ...

  • vuex

    vuex

    Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official devtools extension to provide advanced features such as zero-config time-travel debugging and state snapshot export / import. ...

  • RxJS

    RxJS

    RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. ...

  • React

    React

    Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...

MobX alternatives & related posts

Relay Framework logo

Relay Framework

133
140
1
A JavaScript Framework for Building Data-Driven React Applications, by Facebook
133
140
+ 1
1
PROS OF RELAY FRAMEWORK
CONS OF RELAY FRAMEWORK
    No cons available

    related Relay Framework posts

    Zach Holman

    Apollo is my favorite open source project.

    Two things you need to worry about when making a statement like that: is the tool good, and how is the tool being built?

    From a tool perspective... yeah, Apollo is great. I'm convinced that GraphQL is the way forward for me, and Apollo's just a great way to tackle it. Even beyond that, it just offers a good mentality to how you should build your database-backed app. I've used Relay in the past, back before they made a bunch of changes with Relay Modern (which all seem positive!), but switching to Apollo is just night-and-day. They've been doing better in the last 12 months or so at making smart abstractions in the React Apollo library, to the point where I'd just get these monster all-red pull requests where I can delete all my cruddy code and replace it with far fewer lines of their great abstractions.

    But from a build perspective... Apollo fares even better, I think. By this, I mean their project inertia, their progress, their ability to ship stable code — but still ship meaningful new functionality, too. They're not afraid to move their ideas in other directions (integrating with React Native, for example). Kills me to see projects that are just heads-down on their little world as the world passes them by, and so far... yeah, Apollo's been on top of it.

    Anyway, big fan. It's really changed how I write frontend code, and I feel hella confident while working with it.

    See more
    Knockout logo

    Knockout

    190
    163
    2
    Create rich, responsive UIs with JavaScript
    190
    163
    + 1
    2
    CONS OF KNOCKOUT
      No cons available

      related Knockout posts

      GraphQL Cache logo

      GraphQL Cache

      24
      35
      0
      A custom caching plugin for graphql-ruby
      24
      35
      + 1
      0
      PROS OF GRAPHQL CACHE
        No pros available
        CONS OF GRAPHQL CACHE
          No cons available

          related GraphQL Cache posts

          Flux logo

          Flux

          422
          421
          130
          Application Architecture for Building User Interfaces
          422
          421
          + 1
          130

          related Flux posts

          Marcos Iglesias
          Sr. Software Engineer at Eventbrite · | 13 upvotes · 133.2K views

          We are in the middle of a change of the stack on the front end. So we used Backbone.js with Marionette. Then we also created our own implementation of a Flux kind of flow. We call it eb-flux. We have worked with Marionette for a long time. Then at some point we start evolving and end up having a kind of Redux.js-style architecture, but with Marionette.

          But then maybe one and a half years ago, we started moving into React and that's why we created the Eventbrite design system. It's a really nice project that probably could be open sourced. It's a library of components for our React components.

          With the help of that library, we are building our new stack with React and sometimes Redux when it's necessary.

          See more
          Apollo logo

          Apollo

          1.5K
          1.2K
          16
          GraphQL server for Express, Connect, Hapi, Koa and more
          1.5K
          1.2K
          + 1
          16

          related Apollo posts

          Nick Rockwell
          SVP, Engineering at Fastly · | 42 upvotes · 1.4M views

          When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

          So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

          React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

          Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

          See more
          Adam Neary

          At Airbnb we use GraphQL Unions for a "Backend-Driven UI." We have built a system where a very dynamic page is constructed based on a query that will return an array of some set of possible “sections.” These sections are responsive and define the UI completely.

          The central file that manages this would be a generated file. Since the list of possible sections is quite large (~50 sections today for Search), it also presumes we have a sane mechanism for lazy-loading components with server rendering, which is a topic for another post. Suffice it to say, we do not need to package all possible sections in a massive bundle to account for everything up front.

          Each section component defines its own query fragment, colocated with the section’s component code. This is the general idea of Backend-Driven UI at Airbnb. It’s used in a number of places, including Search, Trip Planner, Host tools, and various landing pages. We use this as our starting point, and then in the demo show how to (1) make and update to an existing section, and (2) add a new section.

          While building your product, you want to be able to explore your schema, discovering field names and testing out potential queries on live development data. We achieve that today with GraphQL Playground, the work of our friends at #Prisma. The tools come standard with Apollo Server.

          #BackendDrivenUI

          See more
          vuex logo

          vuex

          864
          683
          7
          Centralized State Management for Vue.js.
          864
          683
          + 1
          7

          related vuex posts

          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 18 upvotes · 403.4K views

          Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:

          • Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
          • Vue Styleguidist as our style guide and pool of developed Vue.js components
          • Vuetify as Material Component Framework (for fast app development)
          • TypeScript as programming language
          • Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
          • ESLint, TSLint and Prettier for coding style and code analyzes
          • Jest as testing framework
          • Google Fonts and Font Awesome for typography and icon toolkit
          • NativeScript-Vue for mobile development

          The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:

          • Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
          • Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
          • Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
          • Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
          • Large scaling. Vue.js can help to develop pretty large reusable templates.
          • Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
          See more
          Tim Nolet
          Founder, Engineer & Dishwasher at Checkly · | 11 upvotes · 57.6K views

          Vue.js Intercom JavaScript Node.js vuex Vue Router

          My SaaS recently switched to Intercom for all customer support and communication. To get the most out of Intercom, you need to integrate it with your app. This means instrumenting some code and tweaking some bits of your app's navigation. Checkly is a 100% Vue.js app, so in this post we'll look at the following:

          • Identifying a user with some handy attributes
          • Getting page views right with Vue Router
          • Sending events with Vuex
          • Some nice things you can now do in Intercom

          After finishing this integration, you can actively segment your customers into trial, lapsed, active etc. etc.

          See more

          related React posts

          Vaibhav Taunk
          Team Lead at Technovert · | 31 upvotes · 1.3M views

          I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.

          See more
          Johnny Bell
          Software Engineer at Weedmaps · | 26 upvotes · 211.2K views
          Shared insights
          on
          Vue.js
          React

          I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.

          It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.

          See more