{"id":22835991,"url":"https://github.com/goui-org/goui","last_synced_at":"2026-01-18T06:19:52.670Z","repository":{"id":161135499,"uuid":"635502695","full_name":"goui-org/goui","owner":"goui-org","description":"An experimental web framework for creating user interfaces","archived":false,"fork":false,"pushed_at":"2024-01-30T21:37:25.000Z","size":79,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-09T21:43:14.376Z","etag":null,"topics":["golang","ui","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Go","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/goui-org.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":"2023-05-02T20:47:47.000Z","updated_at":"2025-03-24T18:16:27.000Z","dependencies_parsed_at":"2024-01-28T03:22:30.223Z","dependency_job_id":"7fbc0a9b-39be-4441-bd9f-afe1c0359fd3","html_url":"https://github.com/goui-org/goui","commit_stats":null,"previous_names":["goui-org/goui"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/goui-org/goui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goui-org%2Fgoui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goui-org%2Fgoui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goui-org%2Fgoui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goui-org%2Fgoui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goui-org","download_url":"https://codeload.github.com/goui-org/goui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goui-org%2Fgoui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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":["golang","ui","web-framework"],"created_at":"2024-12-12T23:00:49.939Z","updated_at":"2026-01-18T06:19:52.648Z","avatar_url":"https://github.com/goui-org.png","language":"Go","funding_links":[],"categories":["WebAssembly"],"sub_categories":["DOM Manipulation"],"readme":"# GoUI\nAn experimental web framework for creating user interfaces.\n\n## GoUIX\nInstall `gouix`, a cli tool for GoUI.\n\n```\ngo install github.com/goui-org/gouix@latest\n```\n\nCreate a new app\n```\ngouix create my-app\n```\n\nStart the development server\n```\ngouix serve\n```\n\nCreate a production build\n```\ngouix build\n```\n\n## Usage\n```go\n// main.go\npackage main\n\nimport (\n\t\"github.com/goui-org/goui\"\n\t\"main/app\"\n)\n\nfunc main() {\n\tgoui.Mount(\"#root\", app.App)\n}\n```\n\n\n```go\n// app/app.go\npackage app\n\nimport (\n\t\"strconv\"\n\n\t\"github.com/goui-org/goui\"\n)\n\nfunc App(goui.NoProps) *goui.Node {\n\tcount, setCount := goui.UseState(0)\n\n\tgoui.UseEffect(func() goui.EffectTeardown {\n\t\tgoui.Log(\"count is %d\", count)\n\t\treturn nil\n\t}, goui.Deps{count})\n\n\thandleIncrement := goui.UseCallback(func(e *goui.MouseEvent) {\n\t\tsetCount(func(c int) int { return c + 1 })\n\t}, goui.Deps{})\n\n\treturn goui.Element(\"div\", \u0026goui.Attributes{\n\t\tClass: \"app\",\n\t\tSlot: []*goui.Node{\n\t\t\tgoui.Element(\"button\", \u0026goui.Attributes{\n\t\t\t\tClass:   \"app-btn\",\n\t\t\t\tSlot:    \"increment\",\n\t\t\t\tOnClick: handleIncrement,\n\t\t\t}),\n\t\t\tgoui.Element(\"p\", \u0026goui.Attributes{\n\t\t\t\tSlot: \"count: \" + strconv.Itoa(count),\n\t\t\t}),\n\t\t},\n\t})\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoui-org%2Fgoui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoui-org%2Fgoui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoui-org%2Fgoui/lists"}