{"id":22093206,"url":"https://github.com/iadvize/store-library","last_synced_at":"2025-07-24T20:32:40.335Z","repository":{"id":36983800,"uuid":"276932897","full_name":"iadvize/store-library","owner":"iadvize","description":"Experimental store for Javascript","archived":false,"fork":false,"pushed_at":"2023-06-01T10:58:10.000Z","size":4271,"stargazers_count":3,"open_issues_count":31,"forks_count":1,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-11-06T18:16:15.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iadvize.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-03T15:34:46.000Z","updated_at":"2022-01-07T10:29:48.000Z","dependencies_parsed_at":"2024-06-21T04:19:30.820Z","dependency_job_id":"6ee25dc6-89ec-4203-8881-d09b692c52e1","html_url":"https://github.com/iadvize/store-library","commit_stats":{"total_commits":854,"total_committers":8,"mean_commits":106.75,"dds":"0.22833723653395788","last_synced_commit":"08d62d2f0c3d3f6036c641cd14832a8f09556607"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":"iadvize/hello-world-monorepo-javascript-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iadvize%2Fstore-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iadvize%2Fstore-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iadvize%2Fstore-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iadvize%2Fstore-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iadvize","download_url":"https://codeload.github.com/iadvize/store-library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227476011,"owners_count":17779417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-01T03:13:16.652Z","updated_at":"2024-12-01T03:13:17.376Z","avatar_url":"https://github.com/iadvize.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"@iadvize/store\n==============\n\nThis is a monorepo for the experimental `@iadvize-oss/store`, a lightweight\nJavascript store library and its React bindings and devtools helper.\n\n# Why\n\nWe used to rely heavily on Redux at iAdvize, using the library as the defacto\nstate storage of our frontend apps.\n\nWe've started to question this systemic use of Redux. We’re not the only ones as\nwe’ve seen actors of the frontend community having the same questions and\nshipping alternatives that :\n\n- want to respond to scaling issues, view-binding complexity and rendering\n  headache (React useState, Recoil)\n\n- want to respond to architecture issues, where the rule of having one only\n  store for all the data of the app does not make sense (Dan Abramov's famous\n  “local state is fine”, Recoil and the ecosystem of small store libs built with\n  React in mind like react-hooks-global-state)\n\n- want to offer a better developper experience, reducing the Redux boilerplate\n  and the reducer / middleware duality\n\nListening on these discussions, and working on new internal apps, we started to\nunderstand that Redux does not match all of our frontend app architectures. \n\nSome of our apps rely only on GraphQL and do not need a global store. They will\nuse only a few local  `useState`. \nOther apps follow a DDD / layers architecture were we would like to have basic\nstores in the infrastructure layer with no functional api bound to it unlike what\nRedux wants us to do with actions.\n\nOther apps cannot rely on specific React-only store libraries like Recoil\nbecause they also need to access this state in other parts of their codebase\nwhere React isn't an option (legacy views, low-level code, etc.).\n\nThat’s why we created this new store library. \n\nIt’s lightweight. A store will only provide  `read`, `apply` and `subscribe`\nmethods, in the FP way. \n\nIt’s composable. You can take multiple stores and combine them. You can select\na subpart of one store’s state.\n\nIt offers a React binding library à la `react-redux` and a\nRedux-devtools-compatible debugger.\n\n# Packages \n\n- [`@iadvize-oss/store`](./packages/store). The store.\n- [`@iadvize-oss/store-react`](./packages/store-react). React bindings.\n- [`@iadvize-oss/store-devtools`](./packages/store-devtools). Devtools\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiadvize%2Fstore-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiadvize%2Fstore-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiadvize%2Fstore-library/lists"}