Open-source project
effector/effector avatar
effector/effector

effector: event-driven state management for JavaScript apps

Business logic with ease ☄️

4,852 stars282 forksTypeScriptMIT

At a glance

What is it?
effector is an MIT-licensed TypeScript state manager for React, Vue, Svelte, SolidJS, React Native, Node.js and vanilla JavaScript. Its API is built from stores, events and effects, and its documentation lives at effector.dev.
Who is it for?
Adopt effector when you want state expressed as stores, events and effects without classes, decorators or proxies, and when you are on React, Vue, Svelte, SolidJS, React Native, Node.js or vanilla JavaScript. Do not adopt it if your team needs a large third-party middleware ecosystem, or if you need a formal rollback story: the README does not document rollback.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • effector/effector4,852 ★ · -1
Star history
Repository2026-09-232026-11-07
effector/effector4.9k4.9k

-1 Stars in the last 45 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The problem effector solves, and who it is for

State managers usually ask you to accept a worldview before you can move a single value. effector's README states its own set of principles: application stores should be as light as possible, stores should be freely combined, and the API should avoid decorators, classes and proxies in favour of functions and plain JavaScript objects. That last point is the sharpest one. If you have ever wanted to add a store for one small need without it feeling like a structural commitment, this library is aimed at you. The README lists React, React Native, Vue, Svelte, Node.js and vanilla JavaScript as targets, and says TypeScript support is provided out of the box. This is a library for application logic that lives outside components, not a component library and not a data-fetching layer.

Stores, events and effects: the mechanism the README describes

The README's principles describe a model built from simple elements, with business logic taken out of the view. The named primitives are events, stores and effects. The README also claims API consistency as a design goal: if you know how .watch works for events, you already know how .watch works for stores. That consistency claim is the part worth testing yourself, because it is the difference between a library you learn once and one you re-learn per primitive. The repository layout supports the multi-target story: packages/ holds the published packages, examples/ contains directories such as effector-react-example, effector-react-native-example, react-and-ts, react-ssr, serverless-ssr and worker-rpc, and examples/hello-world.js and examples/storages-and-events.js are plain JavaScript entry points. The documentation site at effector.dev is where the core concepts are actually explained; the README points there rather than reproducing the API.

Installing effector and running a first example

The README says you can use any package manager and gives npm install effector as the base step. Framework bindings are separate packages installed alongside it.

bash
npm install effector

For React, the README gives this pair:

bash
npm install effector effector-react

For Vue and SolidJS the pattern is the same, with effector-vue or effector-solid added. Svelte is the exception: the README states Svelte works with effector out of the box and needs no additional packages. After installing, the repository offers examples/hello-world.js and examples/storages-and-events.js as starting points, and the online playground at share.effector.dev supports code sharing with TypeScript and React. If you prefer to skip the install step entirely, the README lists CDN builds on jsDelivr, including effector.cjs.js and effector.mjs. What you should see after the install command is the effector package in node_modules; the examples are where the actual store and event wiring is demonstrated.

Where effector is the wrong tool

The README does not document rollback, and it does not describe a migration path away from the library once your application depends on it. That is a real gap if you are choosing state infrastructure for a codebase with a long horizon. Beyond linking awesome-effector, a curated list of effector packages, the README names effector-logger, which it recommends for printing updates to the console, displaying current store values with a UI, or connecting the application to Redux DevTools. The autonomy principle cuts both ways: avoiding decorators, classes and proxies keeps the API small, but it also means you cannot bring class-based patterns with you. And the README's own framing, managing data flow in complex applications, is a signal about scale. For a small application with a handful of values, the store and event vocabulary may cost more than it returns.

effector compared with Redux and MobX

The README links two articles that make the comparison directly: Why I choose Effector instead of Redux or MobX, and Effector vs. Vuex. Which storage management is better for VueJS app?. The structural difference the README itself states is the absence of decorators, classes and proxies, with an API built from functions and plain JavaScript objects. Redux centres on a single store and reducers, and MobX leans on observable state with class-friendly patterns. effector's README instead describes lightweight stores that combine freely, with logic pulled out of the view. The README also notes that effector-logger can connect an application to Redux DevTools, so the debugging habits you built with Redux are not entirely lost. That is the practical difference to weigh: not whether one model is correct, but whether your team wants reducers and a single tree, observables and classes, or events, stores and effects.

Maintenance, releases and upgrade cost

The last push to the repository was on 2026-10-27, and the repository is not archived. Recent releases listed are [email protected] on 2026-10-27, [email protected] on 2026-09-11, and [email protected] on 2025-07-07. The core package and the Vue binding therefore move on different schedules, which matters if you pin versions across both. The README points to changelog.effector.dev for release history; that is the page to read before upgrading, because the README itself does not document a rollback procedure or a deprecation policy. The repository is a monorepo with packages/, examples/, recipes/, src/, tasks/ and tools/, and the root package.json is private with the name effector-dev, so the build and test scripts there are for contributors rather than consumers. Licence is MIT, stated in package.json and the repository metadata. MIT permits reuse and redistribution with the licence and copyright notice retained; how that interacts with your own distribution or legal obligations is a question for your counsel, not for this article.

Editorial conclusion

Adopt effector when you want state expressed as stores, events and effects without classes, decorators or proxies, and when you are on React, Vue, Svelte, SolidJS, React Native, Node.js or vanilla JavaScript. Do not adopt it if your team needs a large third-party middleware ecosystem, or if you need a formal rollback story: the README does not document rollback. Verify first that the documentation at effector.dev covers your framework binding, that the changelog at changelog.effector.dev is acceptable to you, and that the MIT licence fits your distribution model.

Frequently asked questions

How do I install effector?

The README gives npm install effector as the base command and says you can use any package manager. Framework bindings are separate: effector-react, effector-vue and effector-solid are installed alongside it, while Svelte works with effector out of the box and needs no additional package.

What is effector in JavaScript?

effector is a state manager for JavaScript applications, described in its README as implementing business logic for React, React Native, Vue, Svelte, Node.js and vanilla JavaScript. It is built from events, stores and effects, with an API that avoids decorators, classes and proxies.

Does effector work with React and Vue?

Yes. The README lists effector-react and effector-vue as separate packages to install alongside effector, and the repository contains example directories including effector-react-example and effector-react-native-example. SolidJS has effector-solid, and Svelte needs no extra package.

What tools exist for debugging effector applications?

The README recommends effector-logger for printing updates to the console, displaying current store values with a UI, or connecting the application to Redux DevTools. The README does not list other debugging tools.

Can I try effector without installing it?

The README points to the online playground at share.effector.dev, which supports code sharing with TypeScript and React. It also lists CDN builds on jsDelivr, including effector.cjs.js and effector.mjs.

Official sources

  1. effector/effector on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/effector-effector.svg)](https://hysenlabs.com/projects/effector-effector)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/effector-effector.svg)](https://hysenlabs.com/projects/effector-effector)

Was this useful?