{"id":13563642,"url":"https://github.com/hexops/vecty","last_synced_at":"2025-05-14T20:09:09.717Z","repository":{"id":22752355,"uuid":"26097793","full_name":"hexops/vecty","owner":"hexops","description":"Vecty lets you build responsive and dynamic web frontends in Go using WebAssembly, competing with modern web frameworks like React \u0026 VueJS.","archived":false,"fork":false,"pushed_at":"2022-10-16T21:47:38.000Z","size":791,"stargazers_count":2861,"open_issues_count":59,"forks_count":146,"subscribers_count":80,"default_branch":"main","last_synced_at":"2025-05-08T06:55:56.905Z","etag":null,"topics":["dynamic","frontend","go","gopherjs","javascript","react","responsive","tinygo","vecty","vue","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hexops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"slimsag"}},"created_at":"2014-11-03T00:32:48.000Z","updated_at":"2025-05-05T10:15:06.000Z","dependencies_parsed_at":"2022-08-07T10:16:09.696Z","dependency_job_id":null,"html_url":"https://github.com/hexops/vecty","commit_stats":null,"previous_names":["neelance/dom","gopherjs/dom","gopherjs/vecty"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexops%2Fvecty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexops%2Fvecty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexops%2Fvecty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexops%2Fvecty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexops","download_url":"https://codeload.github.com/hexops/vecty/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219374,"owners_count":22034397,"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":["dynamic","frontend","go","gopherjs","javascript","react","responsive","tinygo","vecty","vue","webassembly"],"created_at":"2024-08-01T13:01:21.697Z","updated_at":"2025-05-14T20:09:09.699Z","avatar_url":"https://github.com/hexops.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://github.com/vecty/vecty-logo/raw/master/horizontal_color_tagline.png\" /\u003e\n\u003c/p\u003e\n\nVecty lets you build responsive and dynamic web frontends in Go using WebAssembly, competing with modern web frameworks like React \u0026 VueJS.\n\n[![Build Status](https://travis-ci.org/hexops/vecty.svg?branch=master)](https://travis-ci.org/hexops/vecty) [![PkgGoDev](https://pkg.go.dev/badge/github.com/hexops/vecty)](https://pkg.go.dev/github.com/hexops/vecty) [![GoDoc](https://godoc.org/github.com/hexops/vecty?status.svg)](https://godoc.org/github.com/hexops/vecty) [![codecov](https://img.shields.io/codecov/c/github/hexops/vecty/master.svg)](https://codecov.io/gh/hexops/vecty)\n\nBenefits\n========\n\n- Go developers can be competitive frontend developers.\n- Share Go code between your frontend \u0026 backend.\n- Reusability by sharing components via Go packages so that others can simply import them.\n\nGoals\n=====\n\n- _Simple_\n\t- Designed from the ground up to be easily mastered _by newcomers_ (like Go).\n- _Performant_\n\t- Efficient \u0026 understandable performance, small bundle sizes, same performance as raw JS/HTML/CSS.\n- _Composable_\n\t- Nest components to form your entire user interface, seperating them logically as you would any normal Go package.\n- _Designed for Go (implicit)_\n\t- Written from the ground up asking the question _\"What is the best way to solve this problem in Go?\"_, not simply asking _\"How do we translate $POPULAR_LIBRARY to Go?\"_\n\nFeatures\n========\n\n- Compiles to WebAssembly (via standard Go compiler).\n- Small bundle sizes: 0.5 MB hello world (see section below).\n- Fast expectation-based browser DOM diffing ('virtual DOM', but less resource usage).\n\nVecty vs. Vugu\n==============\n\nIf you're wondering if you should use Vecty or [Vugu](https://www.vugu.org/), consider reading [this Twitter thread](https://twitter.com/JohanBrandhorst/status/1452393594283831297) for advice from both myself and the creator of Vugu.\n\nCurrent Status\n==============\n\n**Vecty is currently considered to be an experimental work-in-progress.** Prior to widespread production use, we must meet our [v1.0.0 milestone](https://github.com/hexops/vecty/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0) goals, which are being completed slowly and steadily as contributors have time (Vecty is over 4 years in the making!).\n\nEarly adopters may make use of it for real applications today as long as they are understanding and accepting of the fact that:\n\n- APIs will change (maybe extensively).\n- A number of important things are not ready:\n\t- Extensive documentation, examples and tutorials\n\t- URL-based component routing\n\t- Ready-to-use component libraries (e.g. material UI)\n\t- Server-side rendering\n\t- And more, see [milestone: v1.0.0 ](https://github.com/hexops/vecty/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0)\n- The scope of Vecty is only ~80% defined currently.\n- There are a number of important [open issues](https://github.com/hexops/vecty/issues).\n\nFor a list of projects currently using Vecty, see the [doc/projects-using-vecty.md](doc/projects-using-vecty.md) file.\n\nNear-zero dependencies\n======================\n\nVecty has nearly zero dependencies, it only relies on `reflect` from the Go stdlib. Through this, it is able to produce the smallest bundle sizes for Go frontend applications out there, limited only by the Go compiler itself:\n\n| Example binary    | Compiler        | uncompressed | `gzip --best` | `brotli` |\n|-------------------|-----------------|--------------|---------------|----------|\n| `hellovecty.wasm` | `tinygo 0.14.0` | 252K         | 97K           | 81K      |\n| `hellovecty.wasm` | `go 1.15`       | 2.1M         | 587K          | 443K     |\n| `markdown.wasm`   | `go 1.19`       | 5.9M         | 1.3M          | 952K     |\n| `todomvc.wasm`    | `go 1.15`       | 2.9M         | 825K          | 617K     |\n\nYou can find these examples under the [example](./example) directory along with a readme on how to go about running a vecty project.\n\nNote: Bundle sizes above do not scale linearly with more code/dependencies in your Vecty project. `hellovecty` is the smallest base-line bundle that the compiler can produce with just Vecty as a dependency, other examples above pull in more of the Go standard library and you would not e.g. have to pay that total cost again.\n\nCommunity\n=========\n\n- Join us in the [#vecty](https://gophers.slack.com/messages/vecty/) channel on the [Gophers Slack](https://gophersinvite.herokuapp.com/)!\n- See what [projects use Vecty in the wild](https://github.com/hexops/vecty/blob/main/doc/projects-using-vecty.md)\n\nChangelog\n=========\n\nSee the [doc/CHANGELOG.md](doc/CHANGELOG.md) file.\n","funding_links":["https://github.com/sponsors/slimsag"],"categories":["Go (134)","Misc","Go","Tools","Repositories"],"sub_categories":["Mesh networks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexops%2Fvecty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexops%2Fvecty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexops%2Fvecty/lists"}