{"id":21669337,"url":"https://github.com/attack-monkey/push","last_synced_at":"2026-05-17T22:36:54.083Z","repository":{"id":91874071,"uuid":"209144207","full_name":"attack-monkey/push","owner":"attack-monkey","description":"A micro front-end framework built for speed and purity","archived":false,"fork":false,"pushed_at":"2019-09-24T20:19:48.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-20T07:30:37.134Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/attack-monkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-09-17T19:52:22.000Z","updated_at":"2019-09-24T20:19:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"82fcea9b-642c-4d82-942b-1f83a1b8a2e4","html_url":"https://github.com/attack-monkey/push","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/attack-monkey/push","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attack-monkey%2Fpush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attack-monkey%2Fpush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attack-monkey%2Fpush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attack-monkey%2Fpush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/attack-monkey","download_url":"https://codeload.github.com/attack-monkey/push/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attack-monkey%2Fpush/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33157788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2024-11-25T12:21:06.135Z","updated_at":"2026-05-17T22:36:54.078Z","avatar_url":"https://github.com/attack-monkey.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# push\n\nA micro front-end framework built for speed and purity\n\n## intro\n\npush is similar to react + redux, however there is no virtual dom diffing.   \nInstead you have control over what components get rendered by using a treeReduce function - making things extremely fast.\n\npush comes with:\n- routing\n- redux-like state management\n- treeReduce re-rendering\n\n## why push?\n\n**speed**\n\ndiffing takes the previous vdom and the latest vdom, and diffs them to produce a series of DOM patches, These patches are then applied to the DOM.\nThis works well until there are a large number of list items to diff.\nThings can theoretically begin to slow down at this point.\n\nwith push however, you are in complete control over how you wish to patch the DOM.\npush is fast because:\n- there is no fit-all diffing.\n- there is no vdom - unless you want there to be.\n- when you want to make changes to large lists, you can just replace, append, etc.\n\nCheck out the tutorial on building your tree-reduce function.\n\n**purity**\n\npush components are stateless functions - making them predictable, easy-to-test, easy-to-track. \nall state is managed by the state-reducer.\n\nthe state-reducer is a pure function - returning a new state whenever an action is dispatched.\n\nall side effects are handled by treeReduce - since it has to handle mutations to the DOM anyway.\n\n## install\n\nThe easiest way to install is to create a new project directory and then install from a seed project\n\ntypeScript\n\n```\nnpx douglas get push-seed-ts\n\n```\n\njavaScript\n\n```\nnpx douglas get push-seed\n\n```\n\n## Docs\n\nDocs - https://github.com/attack-monkey/push/wiki","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattack-monkey%2Fpush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fattack-monkey%2Fpush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattack-monkey%2Fpush/lists"}