{"id":13485216,"url":"https://github.com/prodo-dev/prodo","last_synced_at":"2025-07-27T20:34:08.169Z","repository":{"id":35151201,"uuid":"203440099","full_name":"prodo-dev/prodo","owner":"prodo-dev","description":"Prodo is a React framework to build apps faster.","archived":false,"fork":false,"pushed_at":"2023-01-11T20:22:43.000Z","size":6634,"stargazers_count":114,"open_issues_count":42,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-07-24T02:10:20.342Z","etag":null,"topics":["boilerplate","mobx","prodo","react","redux","state-management","web"],"latest_commit_sha":null,"homepage":"https://docs.prodo.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/prodo-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-20T19:20:29.000Z","updated_at":"2024-10-12T02:01:59.000Z","dependencies_parsed_at":"2023-01-15T15:00:40.554Z","dependency_job_id":null,"html_url":"https://github.com/prodo-dev/prodo","commit_stats":null,"previous_names":["prodo-ai/prodo"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/prodo-dev/prodo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodo-dev%2Fprodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodo-dev%2Fprodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodo-dev%2Fprodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodo-dev%2Fprodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prodo-dev","download_url":"https://codeload.github.com/prodo-dev/prodo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prodo-dev%2Fprodo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267397875,"owners_count":24080990,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["boilerplate","mobx","prodo","react","redux","state-management","web"],"created_at":"2024-07-31T17:01:51.435Z","updated_at":"2025-07-27T20:34:08.128Z","avatar_url":"https://github.com/prodo-dev.png","language":"TypeScript","readme":"\u003cimg src=\"https://user-images.githubusercontent.com/3044853/65060781-6d032d00-d970-11e9-9bb2-44c1811f80b5.png\" height=\"90px\" align=\"left\"/\u003e\n\n# Prodo\n\nProdo is a React framework to write performant and scalable web apps with as\nlittle boilerplate as possible. View the\n[Documentation](https://docs.prodo.dev). Read more about the motivation behind Prodo on our [blog](https://medium.com/prodo-ai). Join us on [Slack](https://prodo-feedback-slackin.herokuapp.com)!\n\n[![CircleCI](https://circleci.com/gh/prodo-dev/prodo.svg?style=svg)](https://circleci.com/gh/prodo-dev/prodo)\n[![npm version](https://img.shields.io/npm/v/%40prodo%2Fcore.svg?style=flat-square\u0026color=brightgreen)](https://www.npmjs.com/package/@prodo/core)\n[![npm version](https://img.shields.io/badge/chat-on%20slack-blue?style=flat-square)](https://prodo-feedback-slackin.herokuapp.com)\n\n## Key benefits\n\n- 🎉 Drastically simplified state management\n- ✨ Absolutely minimal boilerplate, especially compared to Redux\n- ⚡️ Blazingly fast re-rendering, similar to MobX\n- 👯‍♀️ Handles async actions out of the box\n- 🔎 First class support for TypeScript\n- ✅ Easily testable\n- 🚀 Less to learn and shorter ramp up time\n- 💪 Powerful plugins for routing, local storage, authentication, database, and more...\n\n## Show me the code\n\nDefine your model:\n\n```tsx\n// src/model.ts\nimport { createModel } from \"@prodo/core\";\n\ninterface State {\n  count: number;\n}\n\nexport const model = createModel\u003cState\u003e();\nexport const { state, watch, dispatch } = model.ctx;\n```\n\nUse your state:\n\n```tsx\n// src/index.tsx\nimport { model, state, dispatch, watch } from \"./model\";\n\nconst changeCount = (amount: number) =\u003e {\n  state.count += amount;\n};\n\nconst App = () =\u003e (\n  \u003cdiv\u003e\n    \u003cbutton onClick={() =\u003e dispatch(changeCount)(-1)}\u003e-\u003c/button\u003e\n    \u003ch1\u003eCount: {watch(state.count)}\u003c/h1\u003e\n    \u003cbutton onClick={() =\u003e dispatch(changeCount)(1)}\u003e+\u003c/button\u003e\n  \u003c/div\u003e\n);\n\nconst { Provider } = model.createStore({\n  initState: {\n    count: 0,\n  },\n});\n\nReactDOM.render(\n  \u003cProvider\u003e\n    \u003cApp /\u003e\n  \u003c/Provider\u003e,\n  document.getElementById(\"root\"),\n);\n```\n\nAs you can see in the above example, the state type was used once and\neverything else is automatically inferred.\n\n## Examples\n\nThere are some examples on [CodeSandbox](https://codesandbox.io/) that you can\nview and edit.\n\n- [Counter](https://codesandbox.io/s/prodo-counter-ts-9n7tx?fontsize=14\u0026module=%2Fsrc%2FApp.tsx)\n- [TodoMVC](https://codesandbox.io/s/prodo-todomvc-wf4nv?fontsize=14\u0026module=%2Fsrc%2Fmodel.ts)\n- [Github PR List](https://codesandbox.io/embed/github-pr-list-noxhw?fontsize=14\u0026module=%2Fsrc%2Fmodel.ts)\n\nThere are also many example apps that use Prodo in `examples/`. We recommend\nlooking at.\n\n- Small to-do app example: [`examples/todo-app`](/examples/todo-app)\n- Larger kanban app example: [`examples/kanban`](/examples/kanban)\n\n### Running an example\n\nNavigate to the example directory. For example:\n\n```shell\ncd examples/todo-app\n```\n\nInstall dependencies\n\n```shell\nyarn\n```\n\nRun development server\n\n```shell\nyarn start\n```\n\nNavigate to [localhost:8080](http://localhost:8080).\n\nSome examples have tests. You can run the tests with\n\n```shell\nyarn test\n```\n\n## How to help?\n\n- Help us gauge interest by [starring](https://github.com/prodo-ai/prodo#) this\n  repository if you like what you see!\n- Give feedback by opening an [issue](https://github.com/prodo-ai/prodo/issues/new).\n- Contribute code by opening a [PR](https://github.com/prodo-ai/prodo/pulls). See\n  [CONTRIBUTING](./CONTRIBUTING.md) for information on how to contribute code to\n  the project.\n\n## Where to go next?\n\n- [Join the private beta!](https://prodo.dev)\n- [Documentation](https://docs.prodo.dev)\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprodo-dev%2Fprodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprodo-dev%2Fprodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprodo-dev%2Fprodo/lists"}