{"id":15731774,"url":"https://github.com/movesthatmatter/movex","last_synced_at":"2025-04-04T13:03:58.499Z","repository":{"id":132753800,"uuid":"605055701","full_name":"movesthatmatter/movex","owner":"movesthatmatter","description":"Serverless Multiplayer Infrastructure for JavaScript Games. Private State | Real Time | Server Authoritative | Open Source","archived":false,"fork":false,"pushed_at":"2025-01-31T14:17:05.000Z","size":12578,"stargazers_count":58,"open_issues_count":15,"forks_count":39,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T12:05:30.546Z","etag":null,"topics":["frontend","game-development","hacktoberfest","hacktoberfest-2024","hacktoberfest-accepted","hacktoberfest2024","infrastructure","javascript","multiplayer","multiplayer-game-server","react","reactjs","serverless","socket-programming","state-management","typescript"],"latest_commit_sha":null,"homepage":"https://movex.dev","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/movesthatmatter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-22T10:53:55.000Z","updated_at":"2025-01-31T14:27:07.000Z","dependencies_parsed_at":"2024-10-24T22:18:30.424Z","dependency_job_id":"6e257997-ec15-4476-b29b-c899e907d295","html_url":"https://github.com/movesthatmatter/movex","commit_stats":{"total_commits":593,"total_committers":32,"mean_commits":18.53125,"dds":"0.15514333895446886","last_synced_commit":"303c41fb7424bd59c6921c55f324285e985a7727"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/movesthatmatter%2Fmovex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/movesthatmatter%2Fmovex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/movesthatmatter%2Fmovex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/movesthatmatter%2Fmovex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/movesthatmatter","download_url":"https://codeload.github.com/movesthatmatter/movex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247181951,"owners_count":20897376,"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":["frontend","game-development","hacktoberfest","hacktoberfest-2024","hacktoberfest-accepted","hacktoberfest2024","infrastructure","javascript","multiplayer","multiplayer-game-server","react","reactjs","serverless","socket-programming","state-management","typescript"],"created_at":"2024-10-04T00:05:24.571Z","updated_at":"2025-04-04T13:03:58.445Z","avatar_url":"https://github.com/movesthatmatter.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cpicture width=\"400\"\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/2099521/242976573-84d1ea96-1859-43a7-ac0c-d2f1e0f1b882.png\" width=\"400\"\u003e\n  \u003cimg alt=\"Movex Logo\" src=\"https://user-images.githubusercontent.com/2099521/242976534-60d063cd-3283-45e3-aac5-bd8ed0eb8946.png\" width=\"400\"\u003e\n\u003c/picture\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eServerless Multiplayer Infrastructure for JavaScript Game Developers\u003c/h1\u003e\n  Build multiplayer games without worrying about server-side logic, backend infrastructure, or networking. Movex takes care of it all—works with React out of the box!\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n![Tests](https://github.com/movesthatmatter/movex/actions/workflows/test.yml/badge.svg)\n![Type Script Compilation](https://github.com/movesthatmatter/movex/actions/workflows/tsc-compiler.yml/badge.svg)\n\n\n[npm-url]: https://npmjs.org/package/movex\n[npm-image]: https://img.shields.io/badge/dynamic/json?color=orange\u0026label=movex\u0026query=version\u0026url=https%3A%2F%2Fraw.githubusercontent.com%2Fmovesthatmatter%2Fmovex%2Fmain%2Flibs%2Fmovex%2Fpackage.json\n[license-image]: https://img.shields.io/badge/license-MIT-green\n[license-url]: https://github.com/movesthatmatter/movex/blob/main/LICENSE\n\n\u003c/div\u003e\n\n## 🧐 Why Movex\n\n__Movex cuts your development effort in half and helps you ship faster by abstracting away backend logic and server-side complexity! 🎉__\n\nWith its unique approach and robust set of features, Movex gives you the freedom to focus solely on the front-end while still maintaining full control over the Game Logic, UI/UX, and Data Authority.\n\n## ⭐️ Features:\n- __Serverless:__\n  Movex manages the network logic, state-sharing protocols, server deployment and maintenance, along with various other essential functionalities. [Learn more](https://www.movex.dev/docs/features/serverless).\n- __Authoritative Server:__\n  By keeping the data reconciliation logic on the server side, Movex keeps bad actors away, ensuring the integrity of your application. [Learn more](https://www.movex.dev/docs/features/server_authoritative).\n- __Real-time synchronization:__\n  By utilizing the Observable Pattern to monitor state changes in registered resources Movex promptly notifes the UI layer. [See more](https://www.movex.dev/docs/features/realtime)\n- __Private State:__\n  Movex allows parts of the shared state to remain private to specific users, ensuring that sensitive information is kept secure. [See more](https://www.movex.dev/docs/features/private_state)\n- __Efficient Data Flow:__\n  Movex ensures that only the minimum required data is transmitted with each update, optimizing performance. (See: [Deterministic Action Propagation](https://www.movex.dev/docs/features/functional#determinstic-action-propagation))\n\n\n## 💜 Who uses Movex?\n\u003ca href=\"https://chessroulette.live\" target=\"_blank\" alt=\"Chessroulette | Conect. Play. Stream\"\u003e\n  \u003cpicture width=\"500\"\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/movesthatmatter/chessroulette-web/master/src/components/Logo/assets/Logo_light_full.svg\" width=\"250\"\u003e\n    \u003cimg alt=\"Chessroulette | Conect. Play. Stream\" src=\"https://raw.githubusercontent.com/movesthatmatter/chessroulette-web/master/src/components/Logo/assets/Logo_dark_full.svg\" width=\"250\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n## 🚀 Examples \u0026 Demos\n- **Multiplayer Rock Paper Scissors Game** - https://codesandbox.io/s/rps-demo-x877yl\n- **Chat App** - https://github.com/GabrielCTroia/movex-next-chat\n\n## 🧙🏽‍♂️ How Movex works\nMovex follows the [Flux Pattern](https://medium.com/weekly-webtips/flux-pattern-architecture-in-react-35d0b55313f6) locally to respond to UI changes. It then employs the [Deterministic Propagation Method](https://www.movex.dev/docs/features/functional#determinstic-action-propagation) to synchronize state changes with the Global State(aka Master State) and all peers in the network. [Learn More](https://www.movex.dev/docs/how).\n\n\u003cdiv align=\"center\"\u003e\n\u003cpicture width=\"600\"\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/movesthatmatter/movex/assets/2099521/6d0f8707-b5b3-49f8-aea9-e7f47d70f18f\" width=\"600\"\u003e\n  \u003cimg alt=\"Movex Logo\" src=\"https://github.com/movesthatmatter/movex/assets/2099521/944a5c70-f6cf-42d3-a8b9-0b526099ca1e\" width=\"600\"\u003e\n\u003c/picture\u003e\n\u003c/div\u003e\n\n## 👩‍💻 Getting Started\n\n#### 1. Install It\n\n```bash\nyarn add movex; yarn add --dev movex-service\n```\n\n####  2. Create the Movex Config File\n\n```ts\nexport default {\n  resources: {},\n};\n```\n\n####  3. Start Movex in Dev Mode\n\n```bash\nnpx movex dev\n```\n\n#### 4. Next Steps\nTo continue with the next steps see [Get Started Docs](https://www.movex.dev/docs/overview/get_started).\n\n## Documentation \nVisit the [Docs](https://www.movex.dev/docs/overview/introduction) to get started with Movex.\n\n## 🙏 Contributing\n\nFirst off, thank you for showing an interest in contributing to the Movex project! We have created a [Contributing Guide](https://github.com/movesthatmatter/movex/blob/main/CONTRIBUTING.md) that will show you how to setup a development environment and how to open pull requests and submit changes.\n\n- 🚀 Want to participate in **#hacktoberfest**?\nWe have a selection of [#hactoberfest issues](https://github.com/movesthatmatter/movex/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest).\n\n- Want to help with the code?\nPlease check out our [Good First Issue](https://github.com/movesthatmatter/movex/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) section.\n\n- Don't wanna' code?\nAny feedback is welcome and greatly appreciated so please don't hesitate to open an [issue](https://github.com/movesthatmatter/movex/issues).\n\n- For any other help, you can write us on our [Discord](https://discord.gg/N8k447EmBh), [Twitter](https://twitter.com/gctroia) or just [open an issue](https://github.com/movesthatmatter/movex/issues)!\n\n\u003cbr/\u003e\n\n\u003e #### Before You Contribute, make sure your commits are signed using SSH, GPG os S/MIME\n\u003e This is **very important** for #hacktoberfest so Github can trace your contribution correctly.\n\u003e [Learn more about signing commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification).\n\u003e\n\u003e **ALSO:** Please see our [Requirements For Opening PRs](https://github.com/movesthatmatter/movex/blob/main/CONTRIBUTING.md#opening-pull-request-requirements).\n\n## 🛡️ License\n\nMovex is licensed under the MIT License - see the [LICENSE](https://github.com/movesthatmatter/movex/blob/main/LICENSE) file for details.\n\n## 👽 Community\n\n[Join our Discord](https://discord.gg/N8k447EmBh)\n\n## 🥷 Thanks To All Contributors\n\nMovex wouldn't be the same without you, so thank you all for your amazing efforts and contribution! \n\n\u003ca href=\"https://github.com/movesthatmatter/movex/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=movesthatmatter/movex\u0026v=2\" alt=\"Contributors\" /\u003e\n\u003c/a\u003e\n\nMade with [contrib.rocks](https://contrib.rocks).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmovesthatmatter%2Fmovex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmovesthatmatter%2Fmovex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmovesthatmatter%2Fmovex/lists"}