{"id":15632983,"url":"https://github.com/piranha/twinspark-js","last_synced_at":"2025-05-15T21:06:51.797Z","repository":{"id":39861255,"uuid":"255243248","full_name":"piranha/twinspark-js","owner":"piranha","description":"Declarative enhancement for HTML: simple, composable, lean.","archived":false,"fork":false,"pushed_at":"2024-10-31T20:35:11.000Z","size":631,"stargazers_count":438,"open_issues_count":2,"forks_count":20,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-08T08:13:49.468Z","etag":null,"topics":["hateoas","hotwire","html","htmx","javascript","rest","turbolinks"],"latest_commit_sha":null,"homepage":"https://twinspark.js.org/","language":"JavaScript","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/piranha.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":"2020-04-13T05:54:09.000Z","updated_at":"2025-03-29T15:51:16.000Z","dependencies_parsed_at":"2023-02-17T17:31:15.743Z","dependency_job_id":"9a2450b1-cf26-403d-83d8-c73e48ec6255","html_url":"https://github.com/piranha/twinspark-js","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/piranha%2Ftwinspark-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piranha%2Ftwinspark-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piranha%2Ftwinspark-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piranha%2Ftwinspark-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piranha","download_url":"https://codeload.github.com/piranha/twinspark-js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254422761,"owners_count":22068678,"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":["hateoas","hotwire","html","htmx","javascript","rest","turbolinks"],"created_at":"2024-10-03T10:46:16.919Z","updated_at":"2025-05-15T21:06:51.773Z","avatar_url":"https://github.com/piranha.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![TwinSpark](https://raw.githubusercontent.com/piranha/twinspark-js/main/www/static/twinspark-logo.svg)\n\nDeclarative enhancement for HTML: simple, composable, lean. It's main goal is to\neliminate most of the logic from JS, while allowing to make a good interactive\nsite.\n\nIt engages this problem from a few angles:\n\n- partial page updates facilitated via HTML attributes (no JS needed)\n- actions - incredibly simple promise-enabled language for (limited) client-side scripting\n- morphing - a strategy to update HTML graduallly, without breaking state and focus\n\n**Simple**: it's only a handful core attributes (like `ts-req`, `ts-action`,\n`ts-trigger`), with no surprising behavior (whatever is declared on top of your\nDOM tree will not affect your code).\n\n**Composable**: there are enough extension points to compose with whatever your\nneeds are. You can add more directives like `ts-req`, you can add more actions,\nyou can customize requests being sent out. Whatever you need.\n\n**Lean**: source is a full 2000 lines of code and only [8KB .min.gz][min]. We believe\nin less is more.\n\n[min]: https://github.com/piranha/twinspark-js/raw/main/dist/twinspark.min.js\n\nIt's a battle-tested technology used on websites with 100k+ daily active users.\n\nRead more in [docs](https://twinspark.js.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiranha%2Ftwinspark-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiranha%2Ftwinspark-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiranha%2Ftwinspark-js/lists"}