{"id":19571517,"url":"https://github.com/rodrigofontesdev/rezux","last_synced_at":"2026-04-07T16:32:46.731Z","repository":{"id":252965019,"uuid":"838110019","full_name":"rodrigofontesdev/rezux","owner":"rodrigofontesdev","description":"Migrate global state from Redux to Zustand.","archived":false,"fork":false,"pushed_at":"2024-08-21T15:13:58.000Z","size":283,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T22:46:23.891Z","etag":null,"topics":["react","redux","tailwindcss","typescript","vitest","zustand"],"latest_commit_sha":null,"homepage":"","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/rodrigofontesdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-05T00:46:23.000Z","updated_at":"2024-08-27T23:53:21.000Z","dependencies_parsed_at":"2024-11-11T06:19:49.539Z","dependency_job_id":"880496f0-f422-428c-9ebf-3d1c6e2638f7","html_url":"https://github.com/rodrigofontesdev/rezux","commit_stats":null,"previous_names":["rodrigofontesdev/redux-zustand","rodrigofontesdev/rezux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rodrigofontesdev/rezux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigofontesdev%2Frezux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigofontesdev%2Frezux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigofontesdev%2Frezux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigofontesdev%2Frezux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodrigofontesdev","download_url":"https://codeload.github.com/rodrigofontesdev/rezux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodrigofontesdev%2Frezux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31520563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["react","redux","tailwindcss","typescript","vitest","zustand"],"created_at":"2024-11-11T06:19:08.953Z","updated_at":"2026-04-07T16:32:46.703Z","avatar_url":"https://github.com/rodrigofontesdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![cover](https://github.com/user-attachments/assets/b05234b4-784f-4266-9ea7-838af0bac9c0)\n\n# Redux VS Zustand\n\nThis project was initially built with Redux for state management. The goal was to understand the fundamentals of this popular library and the Flux architecture.\n\nSubsequently, the goal was to migrate from Redux to Zustand due to its more concise syntax, lower learning curve and often better performance.\n\n# Prerequisites\n\n- Node.js\n- Git\n\n# Getting Started\n\n- Clone the repository (`git clone git@github.com:rodrigofontesdev/rezux.git`)\n- Install dependencies (`npm install`)\n- Run application (`npm run dev`)\n- Run server (`npm run server`)\n\n# I've Learned\n\n- Differences among local, global, and server state\n- How Flux architecture works\n- Debug application's state changes with Redux DevTools\n- Create store on Redux (`createStore`)\n- Create slices on Redux (`createSlice`)\n- Dispatch actions on Redux (`useDispatch`)\n- Read state on Redux (`useSelector`)\n- Create custom hooks on Redux\n- Fetch data on Redux with Async Thunks\n- Migrate a store from Redux to Zustand\n\n# Test\n\nUnit tests was built with Vitest library, on terminal type `npm run test` to run tests.\n\n- [x] It should be able to play\n- [x] It should be able to play next video automatically\n- [x] It should be able to jump to the next module automatically\n- [x] It should not update the current module and lesson index if there is no next lesson available\n\n# Built With\n\n- React\n- TypeScript\n- Tailwind CSS\n- JSON Server\n- Redux\n- Zustand\n\n# License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigofontesdev%2Frezux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodrigofontesdev%2Frezux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodrigofontesdev%2Frezux/lists"}