{"id":23816588,"url":"https://github.com/rasviitanen/allotize","last_synced_at":"2025-06-18T23:38:51.492Z","repository":{"id":57176635,"uuid":"373949333","full_name":"rasviitanen/allotize","owner":"rasviitanen","description":"A platform for developing real-time collaborative web apps without backend code","archived":false,"fork":false,"pushed_at":"2022-07-22T21:04:27.000Z","size":274,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-04T22:39:16.809Z","etag":null,"topics":["collaboration","real-time","web"],"latest_commit_sha":null,"homepage":"https://allotize.com","language":"Rust","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/rasviitanen.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}},"created_at":"2021-06-04T20:10:29.000Z","updated_at":"2022-07-22T21:04:31.000Z","dependencies_parsed_at":"2022-09-04T11:10:18.872Z","dependency_job_id":null,"html_url":"https://github.com/rasviitanen/allotize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasviitanen%2Fallotize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasviitanen%2Fallotize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasviitanen%2Fallotize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rasviitanen%2Fallotize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rasviitanen","download_url":"https://codeload.github.com/rasviitanen/allotize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240086341,"owners_count":19745821,"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":["collaboration","real-time","web"],"created_at":"2025-01-02T04:30:52.841Z","updated_at":"2025-02-21T20:43:36.639Z","avatar_url":"https://github.com/rasviitanen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg align=\"center\" height=\"64px\" src=\"https://allotize.com/img/logo.svg\"\u003e\n  \u003cbr\u003e\u003c/br\u003e\n  \n  \u003cstrong\u003eAutomatic Infrastructure from Code\u003c/strong\u003e\n  \u003cbr\u003e\u003c/br\u003e\n\n  \u003cp\u003e\n  Recent developments have made Infrastructure as Code very popular, as it's declarative and expressive.\n  However, typical Infrastructure as Code still defines your infrastructure in a separate system, which requires you to still set up integrations.\n  Allotize insteads attempts to let your application define the infrastrucutre through dependency inference. This allows you to quickly implement complex applications with dynamic content without having to think about infrastructure - only client side code.\n  \u003c/p\u003e\n  \n  [Web Page][allotize-page] | [Demo][allotize-demo] | [Book][allotize-tutorial]\n\n\u003csub\u003eBuilt with 🦀🕸 by the Allotize Team\u003c/sub\u003e\n\n\u003c/div\u003e\n\n```JavaScript\nimport { useAllotize } from \"allotize-js\"\n\nexport function Counter() {\n    const [state, setState] = useAllotize({\n        route: `store#counter`,\n        data: {\n            count: 0,\n        },\n    });\n\n    const increment = () =\u003e {\n        setState({\n            count: state.count + 1,\n        });\n    };\n\n    return (\n        \u003cbutton onClick={increment} /\u003e\n    );\n}\n```\n\n## About\n\nAllotize is a system for creating collaborative and dynamic web apps without traditional server infrastructure.\nThe project is composed of two major modules, a database and a P2P networking solution.\n\nThe database is optimized to run in edge environments\nand replicates freely between nodes using conflict-free strategies.\n\nTo make development as frictionless as possible, the system handles\nJS-values directly and establishes proxies to them.\nThis enables you do to things such as: `votes += 1`, but where\nmutations propagates to all connected users instead of just locally via the proxy.\n_i.e. you write regular JavaScript, but operations can replicate\nremotely if you connect your variables/objects/items to Allotize_\n\n[**📚 Read the tutorial! 📚**][allotize-tutorial]\n\nThis tutorial is designed for kickstarting your first Allotize app.\n\n[allotize-page]: https://allotize.com\n[allotize-demo]: https://app.allotize.com\n[allotize-tutorial]: https://docs.allotize.com\n\n## Demo\n\nHere is an example of Allotize in action! As users can act as hosts, you could serve this\nas a static file, yet allow your app to show real-time changes.\nYou don't need complex frameworks either, here is an example with regular JavaScript:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg align=\"center\" src=\"https://allotize.com/img/cubea.gif\" \u003e\n\u003c/div\u003e\n\n```JavaScript\nconst upvotes = document.getElementById(\"upvotes\");\nconst downvote = document.getElementById(\"downvote\");\nconst upvote = document.getElementById(\"upvote\");\n\nconst votes = Allotize.Data({\n    route: \"cube/votes\",\n\n    data: {\n        upvotes: 0,\n    },\n\n    onChange: (old, new) =\u003e {\n        upvotes.innerHTML = new.upvotes;\n    },\n});\n\nupvote.onclick = () =\u003e {\n    votes.data.upvotes += 1;\n};\n\ndownvote.onclick = () =\u003e {\n    votes.data.upvotes -= 1;\n};\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frasviitanen%2Fallotize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frasviitanen%2Fallotize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frasviitanen%2Fallotize/lists"}